import { arquivoDaNota } from "@/lib/fiscal/servidor/notas";
import { exigirUuid, rotaFiscal } from "@/lib/fiscal/servidor/rota";

export const runtime = "nodejs";
export const dynamic = "force-dynamic";

type Contexto = { params: Promise<{ id: string }> };

/** PDF (DANFE/DANFSe) ou XML. `?baixar=1` força o download; sem ele o PDF abre no navegador. */
export async function GET(req: Request, { params }: Contexto) {
  const { id } = await params;
  return rotaFiscal("fiscal.ver", async ({ admin, empresaId }) => {
    const busca = new URL(req.url).searchParams;
    const tipo = busca.get("tipo") === "xml" ? "xml" : "pdf";
    const arquivo = await arquivoDaNota(admin, {
      empresaId,
      notaId: exigirUuid(id, "Nota"),
      tipo,
      previa: busca.get("previa") === "1",
    });
    const baixar = busca.get("baixar") === "1" || tipo === "xml";
    return new Response(arquivo.conteudo, {
      headers: {
        "Content-Type": arquivo.tipoMime,
        "Content-Disposition": `${baixar ? "attachment" : "inline"}; filename="${arquivo.nome.replace(/"/g, "")}"`,
        "Cache-Control": "private, no-store",
      },
    });
  });
}
