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

export async function GET() {
  const admin = await requireAdmin();
  if (!admin) return unauthorized();
  return NextResponse.json(
    await prisma.sponsor.findMany({ orderBy: [{ slot: "asc" }, { sortOrder: "asc" }] })
  );
}

export async function POST(req: Request) {
  const admin = await requireAdmin();
  if (!admin) return unauthorized();
  const body = await req.json();
  const s = await prisma.sponsor.create({
    data: {
      name: body.name,
      logoUrl: body.logoUrl ?? null,
      url: body.url ?? null,
      slot: (body.slot as SponsorSlot) || "GRID",
      active: body.active !== false,
      sortOrder: Number(body.sortOrder) || 0,
    },
  });
  return NextResponse.json(s);
}
