import { type NextRequest, NextResponse } from "next/server"; import { abacatePay } from "@/lib/abacatepay"; import { checkRateLimit, createRateLimitResponse, getClientIP, } from "@/lib/rate-limiter"; export async function GET(request: NextRequest) { try { // Rate limiting const ip = getClientIP(request); const rateLimit = checkRateLimit(ip, "/api/donations/verify"); if (!rateLimit.allowed) { return createRateLimitResponse(rateLimit.resetAt); } const { searchParams } = new URL(request.url); const billingId = searchParams.get("billingId"); if (!billingId) { return NextResponse.json( { success: false, error: "ID da cobrança é obrigatório" }, { status: 400 }, ); } const billing = await abacatePay.getBillingStatus(billingId); return NextResponse.json({ success: true, status: billing.status, amount: billing.amount, createdAt: billing.createdAt, expiresAt: billing.expiresAt, }); } catch (error) { console.error("Billing verification error:", error); return NextResponse.json( { success: false, error: error instanceof Error ? error.message : "Erro ao verificar cobrança", }, { status: 500 }, ); } }