import type { PrismaClient } from '@prisma/client';

// Códigos de vendedor da equipe de um supervisor (vw_representantes.cod_supervisor
// aponta para o código do supervisor), incluindo o próprio supervisor. Usado para
// escopar as telas do supervisor à sua equipe — gerente/admin veem a empresa toda.
// codSupervisor vem do JWT (parseInt) — interpolação segura.
export async function getTeamCodes(prisma: PrismaClient, codSupervisor: number): Promise<number[]> {
  const rows = await prisma.$queryRawUnsafe<{ codigo: number }[]>(
    `SELECT DISTINCT codigo FROM vw_representantes WHERE cod_supervisor = ${codSupervisor}`,
  );
  const codes = new Set(rows.map((r) => Number(r.codigo)));
  codes.add(codSupervisor);
  return [...codes];
}
