import { NextResponse } from "next/server";
import { prisma } from "@/lib/prisma";
import { requireAdmin, unauthorized } from "@/lib/admin-api";
import { DocumentCategory, DocumentSection, DocumentSubCategory } from "@prisma/client";

export async function GET() {
  const admin = await requireAdmin();
  if (!admin) return unauthorized();
  return NextResponse.json(
    await prisma.document.findMany({ orderBy: { createdAt: "desc" } })
  );
}

export async function POST(req: Request) {
  const admin = await requireAdmin();
  if (!admin) return unauthorized();
  const body = await req.json();
  const doc = await prisma.document.create({
    data: {
      title: body.title,
      description: body.description ?? null,
      fileUrl: body.fileUrl,
      fileName: body.fileName || "arquivo",
      mimeType: body.mimeType ?? null,
      category: (body.category as DocumentCategory) || "INSTITUCIONAL",
      section: (body.section as DocumentSection) || "ASSOCIACAO",
      subCategory:
        (body.subCategory as DocumentSubCategory) || "OUTROS",
    },
  });
  return NextResponse.json(doc);
}
