import { listarProdutosFiscais, listarServicosFiscais, salvarProdutosFiscais, salvarServicosFiscais } from "@/lib/fiscal/servidor/produtos";
import { lerCorpo, rotaFiscal } from "@/lib/fiscal/servidor/rota";

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

export async function GET() {
  return rotaFiscal("fiscal.configurar", async ({ admin, empresaId }) => {
    const [produtos, servicos] = await Promise.all([listarProdutosFiscais(admin, empresaId), listarServicosFiscais(admin, empresaId)]);
    return { produtos, servicos };
  });
}

export async function PATCH(req: Request) {
  return rotaFiscal("fiscal.configurar", async ({ admin, empresaId }) => {
    const corpo = await lerCorpo(req);
    const produtos = Array.isArray(corpo.produtos) ? corpo.produtos : [];
    const servicos = Array.isArray(corpo.servicos) ? corpo.servicos : [];
    const [p, s] = await Promise.all([
      salvarProdutosFiscais(admin, empresaId, produtos as Parameters<typeof salvarProdutosFiscais>[2]),
      salvarServicosFiscais(admin, empresaId, servicos as Parameters<typeof salvarServicosFiscais>[2]),
    ]);
    return { produtos: p.salvos, servicos: s.salvos };
  });
}
