import { redirect, notFound } from "next/navigation";
import Link from "next/link";
import { isAdminSession, hasPermission, getAllPermissions } from "@/lib/adminAuth";
import { getPhotoFolderDetail } from "@/lib/photoFolderDetail";
import { getFolderTagSuggestions } from "@/lib/photoFormat";
import { AdminNavLinks } from "@/components/admin/AdminNavLinks";
import { AdminPageHeader } from "@/components/admin/AdminPageHeader";
import { PhotoApprovalGrid } from "@/components/admin/PhotoApprovalGrid";

export const dynamic = "force-dynamic";

export default async function AdminFolderPage({ params }: { params: Promise<{ folderId: string }> }) {
  if (!(await isAdminSession())) redirect("/de/login?next=%2Fde%2Fadmin%2Forders");

  if (!(await hasPermission("orders_view"))) redirect("/de/account");

  const permissions = await getAllPermissions();
  const { folderId } = await params;

  const [folder, tagSuggestions] = await Promise.all([getPhotoFolderDetail(folderId), getFolderTagSuggestions(folderId)]);
  if (!folder) notFound();

  const backHref = folder.orderId ? `/de/admin/orders/${folder.orderId}` : `/de/admin/clients/${folder.clientId}`;
  const backLabel = folder.orderId ? "Zum Auftrag" : "Zum Kunden";

  return (
    <main className="relative px-6 pt-4 pb-24 max-w-5xl mx-auto">
      <div
        aria-hidden="true"
        className="fixed inset-0 -z-10 pointer-events-none"
        style={{
          background:
            "radial-gradient(ellipse 55% 45% at 88% 15%, rgba(232,200,107,0.10), transparent 62%)," +
            "radial-gradient(ellipse 50% 42% at 8% 85%, rgba(232,200,107,0.07), transparent 65%)",
        }}
      />
      <AdminNavLinks permissions={permissions} />
      <Link href={backHref} className="text-xs text-[var(--rk-ink-muted)] hover:text-[var(--rk-ink)] transition-colors">
        ← {backLabel}
      </Link>
      <div className="mt-4">
        <AdminPageHeader
          title={folder.label || folder.nextcloudPath}
          subtitle={`${folder.clientName} · ${folder.clientEmail} · ${folder.nextcloudPath}`}
        />
      </div>
      <PhotoApprovalGrid
        folderId={folderId}
        clientId={folder.clientId}
        released={folder.released}
        photos={folder.photos}
        tagSuggestions={tagSuggestions}
      />
    </main>
  );
}
