import type { Metadata } from "next";
import { Poppins, Plus_Jakarta_Sans } from "next/font/google";
import { getSiteSettings } from "@/lib/settings/site-settings";
import { GoogleAnalytics } from "@/components/analytics/GoogleAnalytics";
import "./globals.css";

const poppins = Poppins({
  variable: "--font-poppins",
  subsets: ["latin"],
  weight: ["600", "700", "800", "900"],
});

const jakarta = Plus_Jakarta_Sans({
  variable: "--font-jakarta",
  subsets: ["latin"],
  weight: ["400", "500", "600", "700", "800"],
});

export async function generateMetadata(): Promise<Metadata> {
  const settings = await getSiteSettings();

  return {
    metadataBase: new URL(process.env.APP_URL ?? "http://localhost:3005"),
    title: {
      default: settings.siteTitle,
      template: `%s — ${settings.organizationName}`,
    },
    description: settings.siteDescription ?? undefined,
    icons: settings.faviconUrl ? { icon: settings.faviconUrl } : undefined,
    verification: settings.searchConsoleVerification ? { google: settings.searchConsoleVerification } : undefined,
  };
}

export default async function RootLayout({ children }: LayoutProps<"/">) {
  const settings = await getSiteSettings();

  return (
    <html lang="tr" className={`${poppins.variable} ${jakarta.variable} h-full antialiased`}>
      <body className="min-h-full flex flex-col font-sans">
        {children}
        {settings.gaMeasurementId && <GoogleAnalytics measurementId={settings.gaMeasurementId} />}
      </body>
    </html>
  );
}
