// Résout une URI localisée (ex. "/en/solutions/covatherm", "/es/cubiertas/chapa-de-acero")
// vers sa cible de récupération WordPress : URI FR canonique + type de contenu +
// slug CPT. Utilisé par les routes app/en|es/[[...slug]].
//
// Les URLs FR de prod sont réconciliées (slugs SEO plats : /peinture-reflective-covatherm,
// /covaseal, /logistique, /collectivité…), donc on mappe explicitement chaque URL FR
// vers son contenu WP plutôt que par préfixe.

import { type Locale, frUriFor } from "@/config/i18nRoutes";

export type ResolvedKind = "home" | "page" | "produit" | "toiture" | "industrie" | "blog";

export interface ResolvedRoute {
  locale: Locale;
  /** URI FR canonique (clé d'ancrage). */
  frUri: string;
  /** URI WP à interroger pour une page (home → /accueil). */
  pageUri: string;
  kind: ResolvedKind;
  /** Slug du CPT (produit/toiture/industrie) le cas échéant. */
  cptSlug?: string;
}

// URL FR de prod réconciliée → contenu WP. Le slug CPT reste le slug WP d'origine
// (covatherm, covaseal-20, logistique, collectivites…), indépendant de l'URL SEO.
const FR_CONTENT: Record<string, { kind: ResolvedKind; cptSlug?: string; pageUri?: string }> = {
  "/": { kind: "home", pageUri: "/accueil" },
  "/diagnostic": { kind: "page", pageUri: "/diagnostic" },
  "/estimation": { kind: "page", pageUri: "/estimation" },
  "/peinture-reflective-covatherm": { kind: "produit", cptSlug: "covatherm" },
  "/laque-solaire-covatherm-light": { kind: "produit", cptSlug: "covatherm-light" },
  "/covaseal": { kind: "produit", cptSlug: "covaseal-20" },
  "/covametal": { kind: "produit", cptSlug: "covametal-20" },
  "/toitures/bac-acier": { kind: "toiture", cptSlug: "bac-acier" },
  "/toitures/membrane-bitumineuse": { kind: "toiture", cptSlug: "membrane-bitumineuse" },
  "/toitures/toiture-plate": { kind: "toiture", cptSlug: "toiture-plate" },
  "/toitures/fibrociment": { kind: "toiture", cptSlug: "fibrociment" },
  "/toitures/tuiles-ciment": { kind: "toiture", cptSlug: "tuiles-ciment" },
  "/industrie": { kind: "page", pageUri: "/industrie" },
  "/logistique": { kind: "industrie", cptSlug: "logistique" },
  "/distribution": { kind: "industrie", cptSlug: "distribution" },
  "/tertiaire": { kind: "industrie", cptSlug: "tertiaire" },
  "/collectivité": { kind: "industrie", cptSlug: "collectivites" },
  "/industries/agricole": { kind: "industrie", cptSlug: "agricole" },
  "/industries/erp": { kind: "industrie", cptSlug: "erp" },
  "/qui-sommes-nous": { kind: "page", pageUri: "/qui-sommes-nous" },
  "/contact": { kind: "page", pageUri: "/contact" },
  "/devenir-applicateur": { kind: "page", pageUri: "/devenir-applicateur" },
  "/guides": { kind: "blog" }, // index blog/guides — front-only, non seedé en EN/ES
  "/guide-cool-roof": { kind: "page", pageUri: "/guide-cool-roof" },
  "/simulateur-economie-energie": { kind: "page", pageUri: "/simulateur-economie-energie" },
  "/faq": { kind: "page", pageUri: "/faq" },
  "/references": { kind: "page", pageUri: "/references" },
};

/** Mappe une URI localisée vers sa cible de fetch WP (via l'identité FR). */
export function resolveLocalizedUri(localizedUri: string, locale: Locale): ResolvedRoute | null {
  const frUri = frUriFor(localizedUri);
  if (!frUri) return null;
  const c = FR_CONTENT[frUri];
  if (!c) return null;
  return {
    locale,
    frUri,
    pageUri: c.pageUri ?? frUri,
    kind: c.kind,
    cptSlug: c.cptSlug,
  };
}
