import type { Metadata, Viewport } from "next";
import "./globals.css";
import { AnalyticsScripts, IntegrationHead } from "./components/integrations";
import { ConsentBanner } from "./components/consent-banner";
import { SiteSettingsProvider } from "./components/site-settings-provider";
import { businessHours, contactDigits } from "./lib/business-settings";
import { readBusinessSettings } from "./lib/public-settings";
import { readPublicMenus } from "./lib/public-menus";
import { siteBaseUrl } from "./lib/site-url";

const defaultDescription="Jasa instalasi listrik profesional di Bogor untuk rumah, ruko, kantor, dan bangunan komersial. Instalasi, panel, grounding, tambah titik, dan perbaikan.";

export async function generateMetadata():Promise<Metadata>{
  const business=await readBusinessSettings(),description=business.short_description||defaultDescription,favicon=business.favicon_media_id?`/api/media/${business.favicon_media_id}`:"/favicon.svg";
  return{
    metadataBase:new URL(siteBaseUrl()),
    title:{default:`${business.business_name} | Jasa Instalasi Listrik Bogor`,template:`%s | ${business.business_name}`},
    description,
    keywords:["jasa instalasi listrik Bogor","teknisi listrik Bogor","jasa panel listrik Bogor","jasa tambah titik listrik Bogor"],
    alternates:{canonical:"/"},
    openGraph:{type:"website",locale:"id_ID",siteName:business.business_name,title:business.business_name,description,images:[{url:"/og.png",width:1200,height:630,alt:`${business.business_name} — Jasa Instalasi Listrik Profesional di Bogor`}]},
    twitter:{card:"summary_large_image",title:business.business_name,description,images:["/og.png"]},
    icons:{icon:favicon,shortcut:favicon},
  };
}

export const viewport: Viewport = { width: "device-width", initialScale: 1, themeColor: "#123D32", colorScheme: "light" };

export const dynamic="force-dynamic";

export default async function RootLayout({ children }: Readonly<{ children: React.ReactNode }>) {
  const [business,menus]=await Promise.all([readBusinessSettings(),readPublicMenus()]),telephone=contactDigits(business.phone_number||business.whatsapp_number),siteUrl=siteBaseUrl();
  const schema={"@context":"https://schema.org","@type":"Electrician",name:business.business_name,...(business.legal_name?{legalName:business.legal_name}:{}),...(business.registration_number?{identifier:business.registration_number}:{}),description:business.short_description||"Jasa instalasi listrik untuk rumah dan tempat usaha di Bogor.",url:siteUrl,...(business.logo_media_id?{logo:`${siteUrl}/api/media/${business.logo_media_id}`} : {}),...(telephone?{telephone:`+${telephone}`} : {}),...(business.public_email?{email:business.public_email}:{}),...(business.address?{address:business.address}:{}),areaServed:business.service_area,openingHours:businessHours(business),priceRange:"Rp15.000–Hubungi untuk estimasi"};
  return <html lang="id"><head><IntegrationHead/><script type="application/ld+json" dangerouslySetInnerHTML={{__html:JSON.stringify(schema).replace(/</g,"\\u003c")}}/><AnalyticsScripts/></head><body><SiteSettingsProvider initialSettings={business} initialMenus={menus}>{children}</SiteSettingsProvider><ConsentBanner/></body></html>;
}
