import { NextRequest, NextResponse } from "next/server";
import { prisma } from "@/lib/prisma";
import { getAdminUser } from "@/lib/auth";

// No PATCH here on purpose — once a slot is created its start_time/end_time
// cannot be changed. Admins can only add new slots or delete unbooked ones.

export async function DELETE(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
  const admin = await getAdminUser();
  if (!admin) return NextResponse.json({ error: "Unauthorized" }, { status: 401 });

  const { id } = await params;
  const slot = await prisma.time_slots.findUnique({ where: { id: Number(id) } });

  if (!slot) return NextResponse.json({ error: "Slot not found" }, { status: 404 });
  if (slot.booked_count > 0) {
    return NextResponse.json({ error: "Can't delete a slot with active bookings" }, { status: 400 });
  }

  await prisma.time_slots.delete({ where: { id: Number(id) } });
  return NextResponse.json({ message: "Slot deleted" });
}