import { getServerSession } from "next-auth";
import { redirect } from "next/navigation";
import { authOptions } from "@/lib/auth";
import { canAccessSettings } from "@/lib/permissions";
import { AppShell } from "@/components/layout/app-shell";
import { SettingsNav } from "@/components/settings/settings-nav";

export default async function SettingsLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const session = await getServerSession(authOptions);
  if (!session?.user) {
    redirect("/login?callbackUrl=/settings");
  }
  if (!canAccessSettings(session.user.role)) {
    redirect("/dashboard");
  }

  return (
    <AppShell
      userName={session.user.name}
      userEmail={session.user.email}
      userRole={session.user.role}
    >
      <SettingsNav />
      {children}
    </AppShell>
  );
}
