import { createHash } from "node:crypto";

/**
 * O segredo do servidor, um para cada uso.
 *
 * Sai da variável `ASSISTENTES_SEGREDO` e, na falta dela, da chave de serviço:
 * assim o conector funciona sem exigir mais uma variável obrigatória. Cada uso
 * recebe um segredo próprio (o nome do uso entra na conta), para um nunca
 * servir no lugar do outro.
 */
const guardados = new Map<string, string>();

export function segredoDoServidor(uso: string): string {
  const guardado = guardados.get(uso);
  if (guardado) return guardado;
  const base = String(process.env.ASSISTENTES_SEGREDO || process.env.SUPABASE_SERVICE_ROLE_KEY || "").trim();
  if (!base) throw new Error("Sem segredo do servidor para os assistentes.");
  const segredo = createHash("sha256").update(`${uso}:${base}`).digest("hex");
  guardados.set(uso, segredo);
  return segredo;
}
