import { PrismaService } from 'src/prisma/prisma.service';

/** Inicio del mes en curso (UTC). Base del período para consumo/cuotas de IA. */
export function inicioMesUTC(): Date {
  const now = new Date();
  return new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), 1));
}

/** Sube por `parent_id` hasta la empresa raíz (holding) de la jerarquía. */
export async function resolverHoldingId(prisma: PrismaService, empresaId: string): Promise<string> {
  let cur = empresaId;
  for (let i = 0; i < 12; i++) {
    const e = await prisma.empresas.findUnique({ where: { id: cur }, select: { parent_id: true } });
    if (!e?.parent_id) return cur;
    cur = e.parent_id;
  }
  return cur;
}
