import type { Metadata } from "next";
import { notFound } from "next/navigation";

import Navbar from "@/components/Navbar";
import Footer from "@/components/Footer";
import StickyMobileCTA from "@/components/StickyMobileCTA";
import JsonLd from "@/components/seo/JsonLd";
import { BlockRenderer } from "@/components/blocks/BlockRenderer";
import { industryCanonicalPath } from "@/lib/frProdRoutes";
import { SITE_URL } from "@/lib/seo";
import { getAllIndustrieSlugs, getIndustrie } from "@/lib/wp/queries/industrie";
import { breadcrumbJsonLd, wpSeoToMetadata } from "@/lib/wp/seoToMetadata";
import SectorView from "./sector-view-client";

// Pages secteurs pilotées par WordPress (CPT `industrie`, rewrite /industries).
//
// Deux modes de rendu :
// - tertiaire / collectivites / agricole / erp : vue d'origine
//   (SectorPageTemplate) via toSectorConfig dans le wrapper client
//   sector-view-client.tsx (parité pixel avec les vues src/views/industries/*) ;
// - logistique / distribution et tout autre slug : BlockRenderer générique
//   (les adaptateurs origine font le travail).
const SECTOR_TEMPLATE_SLUGS = ["tertiaire", "collectivites", "agricole", "erp"];

export const dynamicParams = true;

export async function generateStaticParams() {
  const slugs = await getAllIndustrieSlugs();
  return slugs.map((slug) => ({ slug }));
}

export async function generateMetadata({
  params,
}: {
  params: Promise<{ slug: string }>;
}): Promise<Metadata> {
  const { slug } = await params;
  const industrie = await getIndustrie(slug);
  if (!industrie) return {};
  const canonical = `${SITE_URL}${industryCanonicalPath(slug)}`;

  return wpSeoToMetadata({ ...industrie.seo, canonical }, {
    title: industrie.title ?? undefined,
    canonical,
  });
}

export default async function Page({
  params,
}: {
  params: Promise<{ slug: string }>;
}) {
  const { slug } = await params;
  const industrie = await getIndustrie(slug);
  if (!industrie) notFound();
  const pageUrl = `${SITE_URL}${industryCanonicalPath(slug)}`;

  const breadcrumb = (
    <JsonLd
      id={`industrie-${slug}-breadcrumb-jsonld`}
      data={breadcrumbJsonLd([
        { name: "Accueil", url: `${SITE_URL}/` },
        { name: "Industries", url: `${SITE_URL}/industrie` },
        { name: industrie.title ?? slug, url: pageUrl },
      ])}
    />
  );

  if (SECTOR_TEMPLATE_SLUGS.includes(slug)) {
    return (
      <>
        {breadcrumb}
        <SectorView slug={slug} sections={industrie.sections?.sections ?? null} />
      </>
    );
  }

  return (
    <div className="min-h-screen bg-background">
      {breadcrumb}
      <Navbar />
      <main>
        <BlockRenderer sections={industrie.sections?.sections} />
      </main>
      <Footer />
      <StickyMobileCTA />
    </div>
  );
}
