import type { Metadata } from "next";

import JsonLd from "@/components/seo/JsonLd";
import { buildMetadata, SITE_URL } from "@/lib/seo";
import { getWpPage } from "@/lib/wp/queries/page";
import { breadcrumbJsonLd, wpSeoToMetadata } from "@/lib/wp/seoToMetadata";
import type { WpPage } from "@/lib/wp/types";
import QuiSommesNousView from "./view-client";

const WP_URI = "/qui-sommes-nous";
const PAGE_URL = `${SITE_URL}/qui-sommes-nous`;

// Metas historiques, conservées en fallback si WP est indisponible.
const FALLBACK_META = {
  title: "Covalba, fabricant français de cool roof depuis 2011",
  description:
    "Covalba, fabricant français de revêtements cool roof depuis 2011. Une peinture réfléchissante premium, durable, conçue pour protéger les bâtiments de la chaleur.",
  canonical: PAGE_URL,
};

const fallbackJsonLd = {
  "@context": "https://schema.org",
  "@type": "AboutPage",
  name: "Qui sommes-nous Covalba",
  url: PAGE_URL,
  description:
    "Covalba conçoit et fabrique des revêtements cool roof durables pour protéger les bâtiments professionnels de la chaleur.",
  mainEntity: {
    "@type": "Organization",
    name: "Covalba",
    foundingDate: "2011",
    url: "https://www.covalba.fr",
  },
};

async function fetchPage(): Promise<WpPage | null> {
  try {
    const page = await getWpPage(WP_URI);
    if (!page) console.warn(`[wp] page ${WP_URI} introuvable, fallback vue codée.`);
    return page;
  } catch (error) {
    console.error(`[wp] page ${WP_URI} indisponible, fallback vue codée :`, error);
    return null;
  }
}

export async function generateMetadata(): Promise<Metadata> {
  const page = await fetchPage();
  if (!page) return buildMetadata(FALLBACK_META);
  return wpSeoToMetadata(page.seo, FALLBACK_META);
}

export default async function Page() {
  const page = await fetchPage();

  if (!page) {
    return (
      <>
        <JsonLd id="qui-sommes-nous-jsonld" data={fallbackJsonLd} />
        <QuiSommesNousView sections={null} />
      </>
    );
  }

  return (
    <>
      <JsonLd
        id="qui-sommes-nous-breadcrumb-jsonld"
        data={breadcrumbJsonLd([
          { name: "Accueil", url: `${SITE_URL}/` },
          { name: "Qui sommes-nous", url: PAGE_URL },
        ])}
      />
      <QuiSommesNousView sections={page.sections?.sections ?? null} />
    </>
  );
}
