import { NextResponse } from "next/server";

import { alterarPacote, criarPacote, excluirPacote, exigirUuid } from "@/lib/fiscal-owner";
import { corpoDaRequisicao, rotaDoDono } from "@/lib/fiscal-owner-rota";

/** Os pacotes de notas que as empresas compram na tela de Assinatura. */
export async function POST(req: Request) {
  return rotaDoDono(async ({ admin }) => {
    const id = await criarPacote(admin, await corpoDaRequisicao(req));
    return NextResponse.json({ ok: true, id });
  });
}

export async function PUT(req: Request) {
  return rotaDoDono(async ({ admin }) => {
    const id = exigirUuid(new URL(req.url).searchParams.get("id"), "Pacote");
    await alterarPacote(admin, id, await corpoDaRequisicao(req));
    return NextResponse.json({ ok: true });
  });
}

export async function DELETE(req: Request) {
  return rotaDoDono(async ({ admin }) => {
    const id = exigirUuid(new URL(req.url).searchParams.get("id"), "Pacote");
    await excluirPacote(admin, id);
    return NextResponse.json({ ok: true });
  });
}
