import { getSession } from '@/lib/session'
import { checkGift } from '@/lib/gift-check'

/**
 * Valida el paso 1 de "Enviar regalo" (botón "Mostrar Regalos"): que el
 * personaje de origen sea tuyo, que el de destino exista y que el token sea
 * correcto. Sin esto el usuario elegía objetos y solo descubría al final que el
 * destino no existía o el token estaba mal, como pasaba antes.
 */
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 = {}
  try {
    body = await request.json()
  } catch {
    return Response.json({ success: false, error: 'invalidRequest' }, { status: 400 })
  }
  const r = await checkGift(session.accountId, body)
  if ('error' in r) return Response.json({ success: false, error: r.error })
  // Devuelve el nombre canónico para que el carrito envíe exactamente ese.
  return Response.json({ success: true, destination: r.destination })
}
