/**
 * URIs WP déjà servies par la home (`/accueil` → `/`) ou par une route codée
 * en dur (app/contact, app/faq, app/qui-sommes-nous, …). Le catch-all
 * app/[...slug] et le sitemap les excluent pour éviter doublons et conflits de
 * canonical. Source de vérité UNIQUE partagée par les deux fichiers (ne pas
 * dupliquer ailleurs).
 */
export const HARDCODED_URIS: ReadonlySet<string> = new Set([
  "/accueil",
  "/contact",
  "/qui-sommes-nous",
  "/faq",
  "/estimation",
  "/diagnostic",
  "/references",
  "/devenir-applicateur",
  "/guide-cool-roof",
  "/simulateur-economie-energie",
  "/bat-en-112",
  "/industrie",
  "/blog",
  "/guides",
  "/nos-solutions-cool-roof",
  "/presse",
  "/mentions-legales",
  "/hub/aides-obligations",
  "/hub/chaleur-travail",
  "/hub/etancheite",
  "/hub/isolation",
  "/hub/peintures",
]);

/**
 * Pages WP de test/démo à NE PAS exposer : page d'exemple WP par défaut,
 * banc de test des blocks. Exclues du build (generateStaticParams) et du
 * sitemap, et renvoient 404 en visite directe (cf. catch-all app/[...slug]).
 */
export const EXCLUDED_URIS: ReadonlySet<string> = new Set([
  "/sample-page",
  "/test-blocks",
]);

/** Normalise une URI WP brute (`/a/b/`) vers la forme comparée (`/a/b`). */
export function normalizeUri(uri: string): string {
  const trimmed = uri.replace(/\/+$/, "");
  return trimmed === "" ? "/" : trimmed;
}

/** Vrai si l'URI est déjà servie par la home ou une route codée en dur. */
export function isHardcodedUri(uri: string): boolean {
  return HARDCODED_URIS.has(normalizeUri(uri));
}

/** Vrai si l'URI est une page de test/démo à ne pas servir ni indexer. */
export function isExcludedUri(uri: string): boolean {
  return EXCLUDED_URIS.has(normalizeUri(uri));
}
