import { redirect } from "next/navigation" import { getServerSession } from "next-auth/next" import { authOptions } from "@/lib/auth" import { UserRole } from "@/types/database" import { AdminSidebar } from "@/components/admin/sidebar" export default async function AdminLayout({ children, }: { children: React.ReactNode }) { // Check authentication and authorization const session = await getServerSession(authOptions) if (!session) { redirect("/auth/signin") } // Check if user has admin role if (session.user.role !== UserRole.SHOP_ADMIN && session.user.role !== UserRole.SUPER_ADMIN) { redirect("/unauthorized") } return (
{/* Sidebar */} {/* Main content */}
{/* Header */}

Admin Dashboard

Welcome, {session.user.name}
{session.user.image ? ( {session.user.name} ) : ( {session.user.name.charAt(0).toUpperCase()} )}
{/* Page content */}
{children}
) }