import { NextRequest, NextResponse } from 'next/server'; import { query } from '@/lib/db'; import { verifyWebhookSignature } from '@/lib/lemonsqueezy'; export async function POST(request: NextRequest) { try { const rawBody = await request.text(); const signature = request.headers.get('x-signature') || ''; if (!verifyWebhookSignature(rawBody, signature)) { return NextResponse.json({ error: 'Invalid signature' }, { status: 401 }); } const event = JSON.parse(rawBody); const eventName = event.meta?.event_name; if (eventName === 'order_created') { const sessionId = event.meta?.custom_data?.session_id; const orderId = event.data?.id; if (sessionId) { await query( `UPDATE sessions SET is_paid = TRUE, payment_id = $1, updated_at = NOW() WHERE id = $2`, [String(orderId), sessionId] ); } } return NextResponse.json({ received: true }); } catch (error) { console.error('Webhook error:', error); return NextResponse.json({ error: 'Webhook processing failed' }, { status: 500 }); } }