import { enviarCertificadoA1 } from "@/lib/fiscal/servidor/emissor";
import { ErroFiscal } from "@/lib/fiscal/servidor/notas";
import { rotaFiscal } from "@/lib/fiscal/servidor/rota";

export const runtime = "nodejs";

/**
 * O certificado A1 passa por aqui direto para a Spedy: o arquivo e a senha não
 * são gravados no Ktalogu, só a validade e o titular que a Spedy devolve.
 */
export async function POST(req: Request) {
  return rotaFiscal("fiscal.configurar", async ({ admin, empresaId, ambiente }) => {
    const formulario = await req.formData().catch(() => null);
    const arquivo = formulario?.get("arquivo");
    const senha = formulario?.get("senha");
    if (!(arquivo instanceof File)) throw new ErroFiscal("Escolha o arquivo do certificado (.pfx).", 400);
    if (typeof senha !== "string" || !senha) throw new ErroFiscal("Digite a senha do certificado.", 400);
    const certificado = await enviarCertificadoA1(admin, { empresaId, ambiente, arquivo, senha });
    return { certificado };
  });
}
