import type { ReactNode } from "react";
import { redirect } from "next/navigation";
import { AdminSidebar } from "@/components/admin/AdminSidebar";
import { ToastHost } from "@/components/admin/Toast";
import { requireAdmin } from "@/modules/auth";

export const metadata = {
  title: "Admin · Event Manager",
};

export default async function AdminLayout({ children }: { children: ReactNode }) {
  const session = await requireAdmin().catch(() => null);
  if (!session) {
    redirect("/admin/login?next=/admin");
  }
  return (
    <div className="flex min-h-screen bg-surface-muted/40">
      <AdminSidebar user={{ name: session.user.name, email: session.user.email }} />
      <main className="flex-1 min-w-0 px-4 py-6 sm:px-6 lg:px-8 lg:py-8">
        {children}
      </main>
      <ToastHost />
    </div>
  );
}