import type { Metadata, Viewport } from 'next'
import { Barlow } from 'next/font/google'
import './globals.css'
import { Toaster } from '@/components/ui/toaster'
import { AuthProvider } from '@/components/providers/auth-provider'
import { ServiceWorkerRegister } from '@/components/providers/sw-register'
import { CookieConsent } from '@/components/ui/cookie-consent'

const barlow = Barlow({
  subsets: ['latin'],
  weight: ['400', '500', '600', '700'],
  display: 'swap',
})

const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://lageplan.ch'

export const metadata: Metadata = {
  metadataBase: new URL(siteUrl),
  title: {
    default: 'Lageplan – Digitale Einsatzdokumentation für Feuerwehren',
    template: '%s | Lageplan',
  },
  description:
    'Die moderne Krokier-App für Schweizer Feuerwehren. Einsatzpläne digital erstellen, Journal führen, Rapporte generieren – direkt im Browser, ohne Installation.',
  keywords: [
    'Feuerwehr Software',
    'Krokier App',
    'Lageplan Feuerwehr',
    'Einsatzdokumentation',
    'Einsatzplanung',
    'Feuerwehr App Schweiz',
    'Einsatzjournal',
    'Rapport Feuerwehr',
    'Feuerwehr Krokierung',
    'Einsatzleitung Software',
    'Feuerwehr digital',
  ],
  authors: [{ name: 'Lageplan.ch' }],
  creator: 'Lageplan.ch',
  publisher: 'Lageplan.ch',
  robots: {
    index: true,
    follow: true,
    googleBot: {
      index: true,
      follow: true,
      'max-video-preview': -1,
      'max-image-preview': 'large',
      'max-snippet': -1,
    },
  },
  openGraph: {
    type: 'website',
    locale: 'de_CH',
    url: siteUrl,
    siteName: 'Lageplan',
    title: 'Lageplan – Digitale Einsatzdokumentation für Feuerwehren',
    description:
      'Die moderne Krokier-App für Schweizer Feuerwehren. Einsatzpläne digital erstellen, Journal führen, Rapporte generieren.',
    images: [
      {
        url: '/og-image.png',
        width: 1200,
        height: 630,
        alt: 'Lageplan – Feuerwehr Krokier-App',
      },
    ],
  },
  twitter: {
    card: 'summary_large_image',
    title: 'Lageplan – Digitale Einsatzdokumentation für Feuerwehren',
    description:
      'Die moderne Krokier-App für Schweizer Feuerwehren. Einsatzpläne digital erstellen, Journal führen, Rapporte generieren.',
    images: ['/og-image.png'],
  },
  alternates: {
    canonical: siteUrl,
  },
  icons: {
    icon: '/logo.svg',
    apple: '/logo.svg',
  },
  category: 'technology',
}

export const viewport: Viewport = {
  width: 'device-width',
  initialScale: 1,
  maximumScale: 1,
  interactiveWidget: 'resizes-content',
}

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="de" suppressHydrationWarning>
      <head>
        <link rel="manifest" href="/manifest.json" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
        <meta name="apple-mobile-web-app-title" content="Lageplan" />
        <meta name="mobile-web-app-capable" content="yes" />
        <meta name="theme-color" content="#dc2626" />
      </head>
      <body className={`${barlow.className} antialiased`} style={{ fontFeatureSettings: '"tnum"' }}>
        <AuthProvider>
          <ServiceWorkerRegister />
          {children}
          <Toaster />
          <CookieConsent />
        </AuthProvider>
      </body>
    </html>
  )
}
