/** * Trouve-KA — les 14 sites indexés de l'écosystème Groupe KA * Author: Simon-Pierre Boucher * Contact: contact@spboucher.ai * * Source des pilules de filtre « par site » de la page de recherche et du * wordmark affiché sur chaque résultat (dérivé du champ `domain`). */ export interface KaSite { /** Wordmark officiel (ex. « Lou·Ka »). */ wordmark: string; /** Domaine canonique indexé (avec www). */ domain: string; } export const KA_SITES: readonly KaSite[] = [ { wordmark: "Groupe KA", domain: "www.groupe-ka.com" }, { wordmark: "Trouve·Ka", domain: "www.trouve-ka.com" }, { wordmark: "Lou·Ka", domain: "www.lou-ka.com" }, { wordmark: "Immo·Ka", domain: "www.immo-ka.com" }, { wordmark: "Vrai-Prix", domain: "www.vrai-prix.com" }, { wordmark: "Toit·Ka", domain: "www.toit-ka.com" }, { wordmark: "Valoplex", domain: "www.valoplex.com" }, { wordmark: "Auto·Ka", domain: "www.auto-ka.com" }, { wordmark: "Fabri·Ka", domain: "www.fabri-ka.com" }, { wordmark: "Food·Ka", domain: "www.food-ka.com" }, { wordmark: "Resto·Ka", domain: "www.resto-ka.com" }, { wordmark: "Sorti·Ka", domain: "www.sorti-ka.com" }, { wordmark: "Créa·Ka", domain: "www.crea-ka.com" }, { wordmark: "Job·Ka", domain: "www.job-ka.com" }, ]; /** Normalise un domaine pour la comparaison (retire le préfixe www.). */ function bareDomain(domain: string): string { return domain.trim().toLowerCase().replace(/^www\./, ""); } /** * Wordmark du site KA correspondant à un domaine (`www.lou-ka.com` ou * `lou-ka.com`). Domaine inconnu → le domaine tel quel. */ export function siteWordmark(domain: string): string { const bare = bareDomain(domain); const site = KA_SITES.find((s) => bareDomain(s.domain) === bare); return site ? site.wordmark : domain; }