import type { Metadata } from "next";
import "./globals.css";
import { CartProvider } from "@/components/cart-provider";
import { Toaster } from "@/components/ui/sonner";
import { loadSiteSettings } from "@/lib/site-settings-server";

export async function generateMetadata(): Promise<Metadata> {
  const settings = await loadSiteSettings();
  const hostname = settings.domain.replace(/^https?:\/\//i, "").split("/")[0] || "barzinmarket.ir";
  let metadataBase: URL;
  try { metadataBase = new URL(`https://${hostname.toLocaleLowerCase("en")}`); }
  catch { metadataBase = new URL("https://barzinmarket.ir"); }
  return {
    metadataBase,
    title: settings.seo.title,
    description: settings.seo.description,
    keywords: settings.seo.keywords.split(/[,،]/).map((item) => item.trim()).filter(Boolean),
    alternates: { canonical: "/" },
    icons: { icon: "/favicon.svg", shortcut: "/favicon.svg" },
  };
}

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html lang="fa" dir="rtl">
      <head>
        <meta name="codex-preview" content="development" />
      </head>
      <body className="antialiased">
        <CartProvider>{children}</CartProvider>
        <Toaster position="bottom-left" richColors />
      </body>
    </html>
  );
}
