import { NextResponse } from 'next/server'
import { prisma } from '@/lib/prisma'
import { safeHandler, requireAuth } from '@/lib/auth'

type Params = { params: Promise<{ id: string; passengerId: string }> }

export const PUT = safeHandler(async (req: Request, { params }: Params) => {
  await requireAuth()
  const { passengerId } = await params
  const data = await req.json()

  const passenger = await prisma.passenger.update({
    where: { id: passengerId },
    data: {
      name: data.name,
      type: data.type,
      panNumber: data.panNumber || null,
      passportNumber: data.passportNumber || null,
      passportExpiry: data.passportExpiry ? new Date(data.passportExpiry) : null,
      email: data.email || null,
      phone: data.phone || null,
    },
  })

  return NextResponse.json(passenger)
})

export const DELETE = safeHandler(async (_req: Request, { params }: Params) => {
  await requireAuth()
  const { passengerId } = await params

  await prisma.passenger.delete({ where: { id: passengerId } })

  return NextResponse.json({ success: true })
})
