import { conferirCompra } from "@/lib/fiscal/servidor/compras";
import { exigirUuid, rotaFiscal } from "@/lib/fiscal/servidor/rota";

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

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

/** A volta do Mercado Pago: confere o pagamento na hora, sem esperar o aviso. */
export async function GET(_req: Request, { params }: Contexto) {
  const { id } = await params;
  return rotaFiscal(["subscription.manage", "fiscal.ver"], async ({ admin, empresaId }) => {
    const compra = await conferirCompra(admin, { compraId: exigirUuid(id, "Compra"), empresaId });
    return {
      compra: {
        id: compra.id,
        pacoteNome: compra.pacote_nome,
        quantidade: compra.quantidade,
        preco: Number(compra.preco),
        status: compra.status,
        mpStatus: compra.mp_status,
        mpStatusDetalhe: compra.mp_status_detalhe,
        formaPagamento: compra.forma_pagamento,
        aprovadaEm: compra.aprovada_em,
        competencia: compra.competencia,
        checkoutUrl: compra.status === "pendente" ? compra.checkout_url : null,
      },
    };
  });
}
