import { redirect } from "next/navigation"
import { eq } from "drizzle-orm"
import { db } from "@/lib/db"
import { profiles } from "@/lib/db/schema"
import { getSession, isAdminUser } from "@/lib/session"
import { getMaintenanceMode } from "@/lib/settings"
import { MaintenanceScreen } from "@/components/shared/maintenance-screen"
import { Sidebar } from "@/components/dashboard/sidebar"
import { Header } from "@/components/dashboard/header"
import { CommandPalette } from "@/components/dashboard/command-palette"
import { PageTransition } from "@/components/dashboard/page-transition"
import { Breadcrumbs } from "@/components/dashboard/breadcrumbs"
import { ScrollToTop } from "@/components/ui/scroll-to-top"
import { ImpersonationBanner } from "@/components/admin/impersonation-banner"
export default async function DashboardLayout({ children }: { children: React.ReactNode }) {
const session = await getSession()
const user = session?.user
if (!user) {
redirect("/login")
}
// Site maintenance mode: everyone except admins sees the maintenance screen.
const maintenance = await getMaintenanceMode()
if (maintenance.enabled && !isAdminUser(user)) {
return