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

export const GET = safeHandler(async (_req: Request, { params }: { params: Promise<{ id: string }> }) => {
  await requireAuth()
  const { id } = await params
  const documents = await prisma.supplierDocument.findMany({
    where: { supplierId: id },
    orderBy: { createdAt: 'desc' },
  })
  return NextResponse.json(documents)
})

export const POST = safeHandler(async (req: Request, { params }: { params: Promise<{ id: string }> }) => {
  await requireAuth(['ADMIN', 'OPERATIONS'])
  const { id } = await params
  const { name, type, fileUrl, expiryDate } = await req.json()

  const document = await prisma.supplierDocument.create({
    data: {
      supplierId: id,
      name,
      type,
      fileUrl: fileUrl || null,
      expiryDate: expiryDate ? new Date(expiryDate) : null,
    },
  })

  return NextResponse.json(document, { status: 201 })
})
