import { getSession } from '@/lib/session' import { getGameCharacters } from '@/lib/characters' import { getRenamePrice } from '@/lib/prices' import { createCheckoutSession } from '@/lib/stripe' export async function POST(request: Request) { const session = await getSession() if (!session.accountId) return Response.json({ success: false, error: 'notAuthenticated' }, { status: 401 }) let character = '' try { const body = await request.json() character = String(body.character ?? '') } catch { return Response.json({ success: false, error: 'invalidRequest' }, { status: 400 }) } if (!character) return Response.json({ success: false, error: 'invalidCharacter' }) const chars = await getGameCharacters(session.accountId) if (!chars.find((c) => c.name === character)) { return Response.json({ success: false, error: 'invalidCharacter' }) } const price = await getRenamePrice() const site = process.env.SITE_URL || '' const ip = (request.headers.get('x-forwarded-for') || '').split(',')[0].trim() || '0.0.0.0' const r = await createCheckoutSession({ accountId: session.accountId, username: session.username || '', email: session.bnetEmail || '', acoreIp: ip, amount: price, characterName: character, productName: `Renombrar personaje: ${character}`, successUrl: `${site}/rename/success`, cancelUrl: `${site}/rename`, }) if (!r.success || !r.url) return Response.json({ success: false, error: 'stripeError' }) return Response.json({ success: true, url: r.url }) }