import { conferirInutilizacao, xmlDaInutilizacaoGuardada } from "@/lib/fiscal/servidor/inutilizacao";
import { exigirUuid, rotaFiscal } from "@/lib/fiscal/servidor/rota";

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

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

/** Como ficou na SEFAZ; `?arquivo=xml` baixa o comprovante. */
export async function GET(req: Request, { params }: Contexto) {
  const { id } = await params;
  return rotaFiscal(["fiscal.cancelar", "fiscal.ver"], async ({ admin, empresaId, ambiente }) => {
    const identificador = exigirUuid(id, "Inutilização");
    if (new URL(req.url).searchParams.get("arquivo") === "xml") {
      const arquivo = await xmlDaInutilizacaoGuardada(admin, { empresaId, ambiente, id: identificador });
      return new Response(arquivo.conteudo, {
        headers: {
          "Content-Type": "application/xml",
          "Content-Disposition": `attachment; filename="${arquivo.nome}"`,
          "Cache-Control": "private, no-store",
        },
      });
    }
    const inutilizacao = await conferirInutilizacao(admin, { empresaId, ambiente, id: identificador });
    return { inutilizacao };
  });
}
