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

/**
 * ── APPRENTISSAGE ────────────────────────────────────────────────────────────
 * `sitemap.ts` est un nom réservé : Next exécute cette fonction AU BUILD et
 * écrit le résultat dans `out/sitemap.xml`. Pas de génération à la volée, pas
 * de script cron — le fichier est figé, comme le reste du site.
 *
 * Les URL portent toutes un slash final, cohérent avec `trailingSlash: true`
 * dans next.config.ts et avec les canoniques déclarées sur chaque page. Une
 * incohérence ici (avec/sans slash) crée des doublons aux yeux de Google.
 * ─────────────────────────────────────────────────────────────────────────────
 */
/**
 * Obligatoire avec `output: 'export'`. Par défaut, Next considère `sitemap.xml`
 * comme une route serveur susceptible d'être recalculée à chaque requête ; en
 * export statique il n'y a pas de serveur, donc il faut lui dire explicitement
 * « calcule-le une fois, au build ». Sans cette ligne, le build échoue.
 */
export const dynamic = "force-static";

export default function sitemap(): MetadataRoute.Sitemap {
  const pages = [
    { chemin: "/", priorite: 1 },
    { chemin: "/logiciels-sur-mesure/", priorite: 0.9 },
    { chemin: "/sites-internet/", priorite: 0.8 },
    { chemin: "/realisations/", priorite: 0.8 },
    { chemin: "/a-propos/", priorite: 0.6 },
    { chemin: "/contact/", priorite: 0.6 },
    { chemin: "/mentions-legales/", priorite: 0.2 },
  ];

  return pages.map((page) => ({
    url: `${SITE.url}${page.chemin}`,
    priority: page.priorite,
  }));
}
