import Link from "next/link";
import { notFound } from "next/navigation";
import { ApiError } from "@/lib/api/server";
import { getAdminEvent } from "@/lib/api/admin";
import { EventMediaManager } from "@/components/admin/event-media-manager";

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

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

  return (
    <div className="max-w-2xl">
      <Link href={`/admin/events/${event.id}`} className="text-sm font-medium text-kolabora-primary">
        &larr; Back to Event
      </Link>
      <h2 className="mt-4 text-lg font-semibold">Media — {event.title}</h2>
      <div className="mt-4">
        <EventMediaManager
          eventId={event.id}
          thumbnail={event.thumbnail}
          banner={event.banner}
          galleries={event.galleries ?? []}
        />
      </div>
    </div>
  );
}
