import { redirect } from "next/navigation";
import { isAdminSession, hasPermission, getAllPermissions } from "@/lib/adminAuth";
import { AdminNavLinks } from "@/components/admin/AdminNavLinks";
import { AdminPageHeader } from "@/components/admin/AdminPageHeader";
import { AdminEmptyState } from "@/components/admin/AdminEmptyState";
import { AdminWishlistRow } from "@/components/admin/AdminWishlistRow";
import { getWishlistGroups } from "@/lib/wishlistList";

export const dynamic = "force-dynamic";

export default async function AdminWishlistPage() {
  if (!(await isAdminSession())) redirect("/de/login?next=%2Fde%2Fadmin%2Forders");
  if (!(await hasPermission("orders_view"))) redirect("/de/account");

  const permissions = await getAllPermissions();
  const sortedGroups = await getWishlistGroups();

  return (
    <main className="px-6 pt-4 pb-24 max-w-5xl mx-auto">
      <AdminNavLinks permissions={permissions} />
      <AdminPageHeader
        title="Wunschliste"
        subtitle="Charaktere/Konzepte, die Kund:innen sich in ihrem Konto gewünscht haben — keine verbindlichen Buchungen, nur Nachfrage-Trends für die eigene Planung."
      />

      <div className="flex flex-col gap-3">
        {sortedGroups.map((group) => (
          <AdminWishlistRow key={group.character.toLowerCase()} character={group.character} entries={group.entries} canDelete={permissions.orders_edit} />
        ))}
        {sortedGroups.length === 0 && <AdminEmptyState message="Noch keine Wünsche eingetragen." />}
      </div>
    </main>
  );
}
