import Blog from "@/views/Blog";
import JsonLd from "@/components/seo/JsonLd";
import { buildMetadata, SITE_URL } from "@/lib/seo";
import { getAllPosts } from "@/lib/wp/queries/post";
import { toBlogCard } from "@/lib/blog/content";

const PAGE_URL = `${SITE_URL}/guides`;

export const metadata = buildMetadata({
  title: "Guides cool roof, toiture et rénovation énergétique | Covalba",
  description:
    "Tous les guides Covalba sur le cool roof, les peintures réflectives, les CEE, l'étanchéité et la rénovation énergétique des bâtiments professionnels.",
  canonical: PAGE_URL,
});

export default async function Page() {
  let cards = [] as ReturnType<typeof toBlogCard>[];
  try {
    cards = (await getAllPosts()).map(toBlogCard);
  } catch (error) {
    console.error("[wp] liste guides indisponible :", error);
  }

  const jsonLd = {
    "@context": "https://schema.org",
    "@type": "CollectionPage",
    name: "Guides Covalba",
    url: PAGE_URL,
    description: "Guides sur les revêtements réflectifs cool roof et la rénovation énergétique.",
    mainEntity: cards.slice(0, 12).map((article) => ({
      "@type": "BlogPosting",
      headline: article.title,
      url: `${SITE_URL}${article.href}`,
      ...(article.image ? { image: article.image.sourceUrl } : {}),
    })),
  };

  return (
    <>
      <JsonLd id="guides-jsonld" data={jsonLd} />
      <Blog
        posts={cards}
        basePath="/guides"
        heroTitle="Guides Covalba : comprendre le cool roof."
        heroDescription="Articles, réglementation, CEE, rénovation de toiture et retours techniques pour les bâtiments professionnels."
      />
    </>
  );
}
