import type { Metadata } from 'next';
import { Suspense } from 'react';
import '@/styles/globals.css';
import { Providers } from '@/components/Providers';
import AdSenseScript from '@/components/ads/AdSenseScript';
import FacebookPixel from '@/components/analytics/FacebookPixel';

const isIndexable = process.env.NEXT_PUBLIC_INDEXABLE === 'true';

export const metadata: Metadata = {
  metadataBase: new URL('https://www.qrmaster.net'),
  title: {
    default: 'QR Master – Smart QR Generator & Analytics',
    template: '%s | QR Master',
  },
  description: 'Create dynamic QR codes, track scans, and scale campaigns with secure analytics. Free advanced features, bulk generation, and custom branding available.',
  keywords: 'QR code, QR generator, dynamic QR, QR tracking, QR analytics, branded QR, bulk QR generator',
  robots: isIndexable
    ? { index: true, follow: true }
    : { index: false, follow: false },
  icons: {
    icon: [
      { url: '/favicon1.png', sizes: '2048x2048', type: 'image/png' },
    ],
    shortcut: '/favicon1.png',
    apple: '/favicon1.png',
  },
  twitter: {
    card: 'summary_large_image',
    site: '@qrmaster',
    images: ['https://www.qrmaster.net/og-image.png'],
  },
  openGraph: {
    type: 'website',
    siteName: 'QR Master',
    title: 'QR Master – Smart QR Generator & Analytics',
    description: 'Create dynamic QR codes, track scans, and scale campaigns with secure analytics. Free advanced features, bulk generation, and custom branding available.',
    url: 'https://www.qrmaster.net',
    images: [
      {
        url: 'https://www.qrmaster.net/og-image.png',
        width: 1200,
        height: 630,
        alt: 'QR Master - Dynamic QR Code Generator and Analytics Platform',
      },
    ],
    locale: 'en_US',
  },
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body className="font-sans">
        <Suspense fallback={null}>
          <Providers>
            <AdSenseScript />
            <Suspense fallback={null}>
              <FacebookPixel />
            </Suspense>
            {children}
          </Providers>
        </Suspense>
      </body>
    </html>
  );
}
