import type { Metadata } from "next";

import { buildMetadata, SITE_URL } from "@/lib/seo";
import type { RoofPageData } from "@/data/roofPages";

/**
 * Construit la metadata Next + les blocs JSON-LD (FAQ + fil d'Ariane)
 * d'une page toiture à partir de ses données RoofPageData.
 * Remplace les anciens appels usePageMeta/useJsonLd de RoofPageTemplate.
 */

const buildFaqSchema = (page: RoofPageData) => ({
  "@context": "https://schema.org",
  "@type": "FAQPage",
  mainEntity: page.faq.map((item) => ({
    "@type": "Question",
    name: item.q,
    acceptedAnswer: {
      "@type": "Answer",
      text: item.a,
    },
  })),
});

const buildBreadcrumbSchema = (page: RoofPageData) => ({
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  itemListElement: [
    { "@type": "ListItem", position: 1, name: "Accueil", item: SITE_URL },
    { "@type": "ListItem", position: 2, name: "Toitures", item: `${SITE_URL}/toitures` },
    { "@type": "ListItem", position: 3, name: page.breadcrumb, item: page.canonical },
  ],
});

export function buildRoofPageSeo(page: RoofPageData): { metadata: Metadata; jsonLd: unknown[] } {
  return {
    metadata: buildMetadata({
      title: page.title,
      description: page.description,
      canonical: page.canonical,
    }),
    jsonLd: [buildFaqSchema(page), buildBreadcrumbSchema(page)],
  };
}
