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

export async function POST(request: Request) {
  try {
    const supabase = await createServerClient()
    const { chitId } = await request.json()

    const { data: { user } } = await supabase.auth.getUser()
    
    if (!user) {
      return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
    }

    // Update chit status
    const { data, error } = await supabase
      .from('chits')
      .update({
        status: 'fulfilled',
        fulfilled_at: new Date().toISOString(),
        fulfilled_by: user.id
      })
      .eq('id', chitId)
      .eq('status', 'unused') // Only fulfill if unused
      .select()
      .single()

    if (error) throw error

    if (!data) {
      return NextResponse.json({ error: 'Chit already fulfilled or invalid' }, { status: 400 })
    }

    return NextResponse.json({ success: true, chit: data })
  } catch (error: any) {
    console.error('[v0] Chit fulfillment error:', error)
    return NextResponse.json(
      { error: error.message || 'Fulfillment failed' },
      { status: 500 }
    )
  }
}
