import { servidorPronto } from "@/lib/fiscal/servidor/base";
import { acordarFila } from "@/lib/fiscal/servidor/fila";
import { ErroFiscal } from "@/lib/fiscal/servidor/notas";
import { lerCorpo, rotaFiscal } from "@/lib/fiscal/servidor/rota";
import { emitirNotaDeTeste } from "@/lib/fiscal/servidor/teste";

export const runtime = "nodejs";

export async function POST(req: Request) {
  return rotaFiscal("fiscal.configurar", async ({ admin, empresaId, ambiente, user }) => {
    const bloqueio = servidorPronto();
    if (bloqueio) throw new ErroFiscal(bloqueio, 503);
    const corpo = await lerCorpo(req);
    const modelo = corpo.modelo === "nfce" ? "nfce" : corpo.modelo === "nfse" ? "nfse" : "nfe";
    const nota = await emitirNotaDeTeste(admin, { empresaId, ambiente, modelo, usuarioId: user.id });
    acordarFila();
    return { nota: { id: nota.id, modelo: nota.modelo, status: nota.status, mensagem: nota.mensagem, mensagemCodigo: nota.mensagem_codigo } };
  });
}
