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 CANONICAL_URL = `${SITE_URL}/guides`;

export const metadata = buildMetadata({
  title: "Blog Covalba : guides cool roof et rénovation énergétique",
  description:
    "Guides Covalba sur le cool roof, les toitures professionnelles, les CEE, le décret tertiaire et la rénovation énergétique des bâtiments.",
  canonical: CANONICAL_URL,
});

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

  const jsonLd = {
    "@context": "https://schema.org",
    "@type": "Blog",
    name: "Blog Covalba",
    url: CANONICAL_URL,
    description: "Guides sur les revêtements réflectifs cool roof et la rénovation énergétique.",
    blogPost: 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="blog-jsonld" data={jsonLd} />
      <Blog posts={cards} />
    </>
  );
}
