import { NextResponse } from "next/server" import { createServiceClient } from "@/lib/supabase" import { buscarPagamentoAsaas, mapearStatus } from "@/lib/asaas" export async function POST( _request: Request, { params }: { params: Promise<{ id: string }> } ) { const { id } = await params const supabase = createServiceClient() const { data: pedido } = await supabase .from("pedidos") .select("id, status, asaas_payment_id") .eq("id", id) .single() if (!pedido) { return NextResponse.json({ error: "Pedido não encontrado" }, { status: 404 }) } if (!pedido.asaas_payment_id) { return NextResponse.json({ error: "Pedido sem ID ASAAS" }, { status: 400 }) } try { const asaasPayment = await buscarPagamentoAsaas(pedido.asaas_payment_id) const novoStatus = mapearStatus(asaasPayment.status) const isPago = novoStatus === "RECEIVED" || novoStatus === "CONFIRMED" const updateData: Record = { status: novoStatus } if (isPago && !pedido.status.includes("RECEIVED") && !pedido.status.includes("CONFIRMED")) { updateData.paid_at = new Date().toISOString() } await supabase.from("pedidos").update(updateData).eq("id", id) return NextResponse.json({ status: novoStatus, asaas_status: asaasPayment.status }) } catch (err) { return NextResponse.json( { error: err instanceof Error ? err.message : "Erro ao consultar ASAAS" }, { status: 500 } ) } }