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

interface SponsorLayoutProps {
  children: React.ReactNode;
}

/**
 * Sponsor Layout
 *
 * Provides authentication protection for all sponsor-related routes.
 * Uses RouteGuard to enforce access control server-side.
 */
export default async function SponsorLayout({ children }: SponsorLayoutProps) {
  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 (
    <Box minHeight="screen" bg="bg-deep-graphite">
      {children}
    </Box>
  );
}
