// src/app/layout.tsx
import type { Metadata } from "next";
import "./globals.css";
import { Toaster } from "sonner";
import { AuthProvider } from "@/hooks/useAuth";
import { LanguageProvider } from "@/i18n/LanguageContext";
import { getCurrentUser } from "@/lib/session";
import { cookies } from "next/headers";

export const dynamic = "force-dynamic";

export const metadata: Metadata = {
  title: { default: "CRM Pro", template: "%s | CRM Pro" },
  description: "نظام إدارة علاقات العملاء الاحترافي",
};

export default async function RootLayout({ children }: { children: React.ReactNode }) {
  const user = await getCurrentUser();

  // Read language from cookie server-side so HTML renders with correct dir/lang
  const cookieStore = cookies();
  const savedLang = cookieStore.get("crm_language")?.value;
  const lang = savedLang === "en" ? "en" : "ar"; // Default: Arabic

  return (
    <html lang={lang} dir={lang === "ar" ? "rtl" : "ltr"} suppressHydrationWarning>
      <body>
        <LanguageProvider defaultLanguage={lang}>
          <AuthProvider initialUser={user}>
            {children}
            <Toaster
              position={lang === "ar" ? "top-left" : "top-right"}
              richColors
              closeButton
              toastOptions={{
                duration: 4000,
                style: {
                  fontFamily: "Cairo, system-ui, Segoe UI, sans-serif",
                },
              }}
            />
          </AuthProvider>
        </LanguageProvider>
      </body>
    </html>
  );
}
