import { AccessibilityToggle } from "@/components/public/common/AccessibilityToggle";
import { DeferredPublicPanels } from "@/components/public/common/DeferredPublicPanels";
import { DeferredHeavyChrome } from "@/components/public/common/DeferredHeavyChrome";
import { Footer } from "@/components/public/layout/Footer";
import { Header } from "@/components/public/layout/Header";
import { MobileNav } from "@/components/public/layout/MobileNav";
import { HomePageContent } from "@/components/public/pages/HomePageContent";
import { JsonLd } from "@/components/public/seo/JsonLd";
import { getPublicFeatureFlags } from "@/lib/data/site-settings";
import { getDictionary, pickDictionary } from "@/lib/i18n/i18n";
import { buildMetadata } from "@/lib/seo";
import { buildOrganizationSchema, buildWebsiteSearchSchema } from "@/lib/structured-data";

// Naslovna se osvežava on-demand preko "home-page" taga kada se sadržaj
// promeni. Vremenski ISR na svakih 5 minuta je samo dozvoljavao botovima da
// tokom celog dana proizvode nove ISR upise i serverski rad bez poslovne koristi.
export const revalidate = false;
export const metadata = buildMetadata({
  title: "BiznisPortal.rs",
  description:
    "BiznisPortal.rs spaja kompanije, mesta, nekretnine, događaje i automobile u jednu premium platformu za vidljivost širom Srbije.",
  path: "/",
});

export default async function RootHomePage() {
  const locale = "sr";
  const dictionary = getDictionary(locale);
  const clientDictionary = pickDictionary(dictionary, [
    "a11y.",
    "cmd.",
    "header.",
    "nav.",
    "search.",
  ]);
  const features = await getPublicFeatureFlags();

  return (
    <>
      {/* WebSite SearchAction (sitelinks search box u Google-u) + Organization. */}
      <JsonLd data={[buildWebsiteSearchSchema(), buildOrganizationSchema()]} />
      {/* Hreflang se sada emituje statički kroz `buildMetadata` (alternates.languages),
          pa ova strana ostaje ISR-keširana (bez `headers()` dinamike). */}
      <Header locale={locale} dictionary={clientDictionary} features={features} />
      <main className="pb-[5.5rem] xl:pb-0">
        <HomePageContent locale={locale} />
      </main>
      <Footer locale={locale} />
      <MobileNav locale={locale} features={features} dictionary={clientDictionary} />
      <DeferredPublicPanels />
      <DeferredHeavyChrome
        vapidPublicKey={process.env.NEXT_PUBLIC_VAPID_PUBLIC_KEY ?? null}
      />
      <AccessibilityToggle dictionary={clientDictionary} />
    </>
  );
}
