import { headers } from 'next/headers';
import { redirect } from 'next/navigation';
import { createRouteGuard } from '@/lib/auth/createRouteGuard';
import { Section } from '@/ui/Section';

interface AdminLayoutProps {
  children: React.ReactNode;
}

/**
 * Admin Layout
 *
 * Provides role-based protection for admin routes.
 * Uses RouteGuard to enforce access control server-side.
 */
export default async function AdminLayout({ children }: AdminLayoutProps) {
  const headerStore = await headers();
  const pathname = headerStore.get('x-pathname') || '/';
  
  const guard = createRouteGuard();
  const result = await guard.enforce({ pathname });
  if (result.type === 'redirect') {
    redirect(result.to);
  }
  
  return (
    <Section variant="default" minHeight="100vh">
      {children}
    </Section>
  );
}
