import Link from "next/link";
import { redirect } from "next/navigation";
import { ArrowLeft, ImagePlus } from "lucide-react";
import { getCurrentRole } from "@/lib/auth";
import { getPendingPhotos } from "@db/queries/gallery-db";
import SubmissionsReview, { type PendingPhoto } from "./submissions-review";
import { PageHeader } from "@/components/ui";

export const metadata = { title: "Photo submissions · Admin" };

export default async function SubmissionsPage() {
  const { isAdmin } = await getCurrentRole();
  if (!isAdmin) redirect("/dashboard");

  const rows = await getPendingPhotos();
  const pending: PendingPhoto[] = rows.map((r) => ({
    id: r.id,
    url: r.url,
    creditName: r.credit_name,
    creditUrl: r.credit_url,
    albumTitle: r.album_title,
    eventId: r.event_id,
  }));

  return (
    <div className="max-w-3xl space-y-6">
      <div>
        <Link
          href="/admin/gallery"
          className="mb-3 inline-flex items-center gap-1.5 text-sm text-be-muted hover:text-be-text"
        >
          <ArrowLeft className="h-4 w-4" />
          Gallery
        </Link>
        <PageHeader
          icon={ImagePlus}
          title="Photo submissions"
          description="Photos submitted by photographers for past events. Approve to publish them on the event gallery, or reject to discard."
        />
      </div>

      <SubmissionsReview initial={pending} />
    </div>
  );
}
