/**
 * Admin Layout
 *
 * Provides the layout structure for admin pages.
 * Authentication is handled by middleware.
 */

import { getServerSession } from 'next-auth';
import { redirect } from 'next/navigation';
import { authOptions } from '@/lib/auth';
import { HeaderRight } from './HeaderRight';
import styles from './layout.module.css';

export default async function AdminLayout({ children }: { children: React.ReactNode }) {
  // Double-check admin access (middleware should have already blocked non-admins)
  const session = await getServerSession(authOptions);

  if (!session?.user?.id) {
    redirect('/auth/signin?callbackUrl=/admin');
  }

  const role = session.user.role;
  if (role !== 'admin' && role !== 'superadmin') {
    redirect('/dashboard');
  }

  return (
    <div className={styles.container}>
      <header className={styles.header}>
        <div className={styles.headerContent}>
          <div className={styles.headerLeft}>
            <h1 className={styles.title}>Admin Dashboard</h1>
            <span className={styles.badge}>{role === 'superadmin' ? 'Super Admin' : 'Admin'}</span>
          </div>
          <HeaderRight userEmail={session.user.email ?? ''} />
        </div>
      </header>
      <main className={styles.main}>{children}</main>
    </div>
  );
}
