//src\app\layout.tsx

import { Inter } from 'next/font/google';
import '@/app/globals.css';
import { getSettings } from '@/lib/settings-service';
import ToasterProvider from '@/app/components/ToasterProvider';
import JsonLdSchemas from './components/Frontend/JsonLdSchemas';

const inter = Inter({ subsets: ['latin'] });

// generatemetadata for icon only
export async function generateMetadata() {
  const settings = await getSettings();
  return {
    title: "Admin Dashboard",
    icons: {
      icon: settings.favicon || '/favicon.png',
    },
  };
}

export default async function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const settings = await getSettings();
  
  return (
    <html lang="en">
      <head>
        {settings?.google_site_verification && (
          <meta
            name="google-site-verification"
            content={settings.google_site_verification}
          />
        )}
        {settings?.bing_site_verification && (
          <meta
            name="msvalidate.01"
            content={settings.bing_site_verification}
          />
        )}
        {settings?.baidu_site_verification && (
          <meta
            name="baidu-site-verification"
            content={settings.baidu_site_verification}
          />
        )}
        {settings?.yandex_site_verification && (
          <meta
            name="yandex-verification"
            content={settings.yandex_site_verification}
          />
        )}
        {settings?.pinterest_verification && (
          <meta
            name="p:domain_verify"
            content={settings.pinterest_verification}
          />
        )}
      </head>
      <body className={inter.className}>
        {/* JSON-LD Schemas */}
        <JsonLdSchemas 
          schemas={
            settings.home_schema 
              ? Array.isArray(settings.home_schema) 
                ? settings.home_schema 
                : [settings.home_schema]
              : []
          } 
        />
        {/* Body Scripts */}
        {settings.body_scripts && (
          <div 
            dangerouslySetInnerHTML={{ __html: settings.body_scripts }}
            suppressHydrationWarning
          />
        )}
        
        {/* Main Content */}
        <main className="min-h-screen">
          {children}
          <ToasterProvider />
        </main>
        
        {/* Footer Scripts */}
        {settings.footer_scripts && (
          <div 
            dangerouslySetInnerHTML={{ __html: settings.footer_scripts }}
            suppressHydrationWarning
          />
        )}
      </body>
    </html>
  );
}