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

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

export async function POST(req: Request) {
  const admin = await requireAdmin();
  if (!admin) return unauthorized();
  const body = await req.json();
  const last = await prisma.squadPlayer.aggregate({ _max: { sortOrder: true } });
  const nextOrder = (last._max.sortOrder ?? -1) + 1;
  const year = Number.isFinite(Number(body.year)) ? Number(body.year) : 0;
  const p = await prisma.squadPlayer.create({
    data: {
      name: body.name,
      position: String(body.position || "").trim() || "Elenco",
      imageUrl: body.imageUrl,
      year,
      sortOrder: Number.isFinite(Number(body.sortOrder))
        ? Number(body.sortOrder)
        : nextOrder,
    },
  });
  return NextResponse.json(p);
}
