import { NextResponse } from "next/server";
import { api } from "../../../../../convex/_generated/api";
import { q, iso } from "@/lib/convex-server";
import { getCurrentUser, can } from "@/lib/auth";

/** Everything the reservation drawer needs, permission-filtered. */
export async function GET(_req: Request, { params }: { params: Promise<{ id: string }> }) {
  const user = await getCurrentUser();
  if (!user || !can(user, "reservations.view")) return NextResponse.json({ error: "Forbidden" }, { status: 403 });
  const { id } = await params;
  const data = await q(api.reservations.drawer, { id: id as never }).catch(() => null);
  if (!data) return NextResponse.json({ error: "Not found" }, { status: 404 });
  return NextResponse.json(iso(data), { headers: { "Cache-Control": "private, no-store" } });
}
