// src/app/api/admin/schedule-requests/route.ts
import { NextRequest, NextResponse } from "next/server";
import { prisma } from "@/lib/prisma";
import { getAdminUser } from "@/lib/auth";

export async function GET(req: NextRequest) {
  const admin = await getAdminUser();
  if (!admin) return NextResponse.json({ error: "Unauthorized" }, { status: 401 });

  const status = req.nextUrl.searchParams.get("status"); // "pending" | "approved" | "rejected" | null (all)

  const requests = await prisma.schedule_change_requests.findMany({
    where: status ? { status } : undefined,
    include: {
      schedule_bookings: {
        include: {
          time_slots: { select: { start_time: true, end_time: true } },
          student_schedules: {
            include: {
              students: {
                select: { id: true, name: true, email: true, contact: true },
              },
            },
          },
        },
      },
    },
    orderBy: [{ status: "asc" }, { created_at: "desc" }],
  });

  return NextResponse.json({ data: requests });
}