import { json, PLANS, paypalAccessToken, paypalBase, verifyFirebaseUser } from './_utils.js'; export async function onRequestPost({ request, env }){ try{ const user = await verifyFirebaseUser(request); const body = await request.json().catch(()=>({})); const planKey = String(body.plan || '').toLowerCase(); const plan = PLANS[planKey]; if(!plan) return json({ error: 'Invalid plan' }, 400); const token = await paypalAccessToken(env); const res = await fetch(`${paypalBase(env)}/v2/checkout/orders`, { method: 'POST', headers: { 'authorization': `Bearer ${token}`, 'content-type': 'application/json', 'prefer': 'return=representation' }, body: JSON.stringify({ intent: 'CAPTURE', purchase_units: [{ custom_id: `${user.uid}:${planKey}`, description: `NovaKit Studio ${plan.label} - Cloud Access`, amount: { currency_code: 'EUR', value: plan.amount }, invoice_id: `NK-${planKey}-${Date.now()}` }] }) }); const data = await res.json().catch(()=>({})); if(!res.ok) return json({ error: data.message || data.error || 'PayPal order failed', details: data }, 500); return json({ id: data.id }); }catch(e){ return json({ error: e.message || String(e) }, 500); } }