import Link from "next/link";
import { notFound } from "next/navigation";
import { ApiError } from "@/lib/api/server";
import { getAdminEvent, getAdminEventPetugas } from "@/lib/api/admin";
import { PetugasManager } from "@/components/admin/petugas-manager";
import { ensureSignatureEvent } from "@/lib/admin/signature-guard";

export default async function AdminSignaturePetugasPage({
  params,
}: {
  params: Promise<{ id: string }>;
}) {
  const { id } = await params;

  const [event, petugasRes] = await Promise.all([
    getAdminEvent(id)
      .then((res) => res.data)
      .catch((error) => {
        if (error instanceof ApiError && (error.status === 404 || error.status === 403)) {
          notFound();
        }
        throw error;
      }),
    getAdminEventPetugas(id),
  ]);

  ensureSignatureEvent(event);

  return (
    <div className="max-w-2xl">
      <Link href={`/admin/signature/events/${id}`} className="text-sm font-medium text-kolabora-primary">
        &larr; Back to Event Detail
      </Link>
      <h2 className="mt-4 text-lg font-semibold">Manage Staff &mdash; {event.title}</h2>
      <div className="mt-4">
        <PetugasManager eventId={event.id} assignments={petugasRes.data} />
      </div>
    </div>
  );
}
