import { type NextRequest, NextResponse } from "next/server"; import { getPaymentStatus } from "@/lib/payment-cache"; 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/status"); if (!rateLimit.allowed) { return createRateLimitResponse(rateLimit.resetAt); } const { searchParams } = new URL(request.url); const pixId = searchParams.get("pixId"); if (!pixId) { return NextResponse.json( { error: "pixId é obrigatório" }, { status: 400 }, ); } const status = getPaymentStatus(pixId); return NextResponse.json({ pixId, paid: status?.paid || false, paidAt: status?.paidAt, amount: status?.amount, anonymous: status?.anonymous, }); } catch (error) { console.error("Erro ao verificar status do pagamento:", error); return NextResponse.json( { error: "Erro ao verificar status" }, { status: 500 }, ); } }