import { createServerClient } from '@/lib/supabase/server'
import { NextResponse } from 'next/server'

export async function POST(request: Request) {
  try {
    const supabase = await createServerClient()
    const { eventId, items, customerName, customerEmail } = await request.json()

    // Calculate total
    const total = items.reduce((sum: number, item: any) => sum + (item.price * item.quantity), 0)

    // Create order
    const { data: order, error: orderError } = await supabase
      .from('orders')
      .insert({
        event_id: eventId,
        customer_name: customerName,
        customer_email: customerEmail,
        total_amount: total,
        payment_status: 'completed', // Mock payment - always successful
        payment_method: 'mock'
      })
      .select()
      .single()

    if (orderError) throw orderError

    // Create chits for each item
    const chits = []
    for (const item of items) {
      for (let i = 0; i < item.quantity; i++) {
        chits.push({
          order_id: order.id,
          menu_item_id: item.id,
          status: 'unused'
        })
      }
    }

    const { error: chitsError } = await supabase
      .from('chits')
      .insert(chits)

    if (chitsError) throw chitsError

    return NextResponse.json({ success: true, orderId: order.id })
  } catch (error: any) {
    console.error('[v0] Checkout error:', error)
    return NextResponse.json(
      { error: error.message || 'Checkout failed' },
      { status: 500 }
    )
  }
}
