import type { Metadata } from "next";
import { SITE } from "@/lib/site";

/**
 * ── APPRENTISSAGE ────────────────────────────────────────────────────────────
 * En PHP tu construisais tes `<title>`/`<meta>` dans header.php à partir de
 * variables. Next fait ça avec la « Metadata API » : chaque page exporte un
 * objet `metadata`, et Next écrit les balises dans le <head> au moment du build.
 *
 * Cette fonction n'est qu'une usine à objets `Metadata` pour ne pas répéter
 * dix fois les mêmes clés Open Graph. Voir LEARNING.md § « Metadata API ».
 * ─────────────────────────────────────────────────────────────────────────────
 */
export function metadonneesPage({
  titre,
  description,
  chemin,
}: {
  /** Le <title> complet de la page. Doit être unique sur tout le site. */
  titre: string;
  description: string;
  /** Chemin absolu avec slash final, ex. "/realisations/". */
  chemin: string;
}): Metadata {
  const urlAbsolue = `${SITE.url}${chemin}`;

  return {
    title: titre,
    description,
    // La canonique dit à Google « cette page-ci est l'originale ».
    // Indispensable ici : http/https et www/non-www servent le même contenu.
    alternates: { canonical: urlAbsolue },
    openGraph: {
      type: "website",
      locale: "fr_FR",
      siteName: SITE.nom,
      title: titre,
      description,
      url: urlAbsolue,
      images: [
        {
          url: "/og.png",
          width: 1200,
          height: 630,
          alt: `${SITE.nom} — logiciels sur mesure et sites internet à ${SITE.ville}`,
        },
      ],
    },
    twitter: {
      card: "summary_large_image",
      title: titre,
      description,
      images: ["/og.png"],
    },
  };
}
