import { getSession } from '@/lib/session' import { getGameCharacters } from '@/lib/characters' import { priceStoreCart, purchaseStoreCart } from '@/lib/store' /** * Compra de la tienda: cobra el carrito (PD/PV) y envía los ítems por correo al * personaje elegido (uno de la cuenta). El precio se recalcula en el servidor a * partir de las filas de `home_store_item`; nunca se confía en el cliente. */ export async function POST(request: Request) { const session = await getSession() if (!session.accountId || !session.username) { return Response.json({ success: false, error: 'notAuthenticated' }, { status: 401 }) } let body: { character?: string; items?: number[] } = {} try { body = await request.json() } catch { return Response.json({ success: false, error: 'invalidRequest' }, { status: 400 }) } const character = String(body.character ?? '') const chars = await getGameCharacters(session.accountId) if (!character || !chars.find((c) => c.name === character)) { return Response.json({ success: false, error: 'invalidCharacter' }) } const cart = await priceStoreCart(Array.isArray(body.items) ? body.items : []) if (!cart) return Response.json({ success: false, error: 'emptyCart' }) const r = await purchaseStoreCart(session.accountId, character, cart) if (!r.success) return Response.json({ success: false, error: r.error }) return Response.json({ success: true }) }