import { cookies } from 'next/headers';
import { redirect } from 'next/navigation';
import { loadSessionUser } from '@/src/server/session';
import { COOKIE_NAME } from '@/src/server/utils/auth';
import DashShell from './shell';

export const dynamic = 'force-dynamic';

/** Server-side auth gate: unauthenticated traffic never reaches dashboard pages. */
export default async function DashLayout({ children }: { children: React.ReactNode }) {
  let user;
  try {
    user = await loadSessionUser((await cookies()).get(COOKIE_NAME)?.value);
  } catch {
    redirect('/login');
  }
  return <DashShell user={user}>{children}</DashShell>;
}
