# thrace — Gestions Thrace - site: https://www.gestionsthrace.com/fr/residential - méthode: html (flux RSC Livya rendu serveur) - annonces: 181 (unités disponibles, résidentielles et locatives seulement) - couverture (sur 181 annonces): prix 69%, adresse 100%, dispo 100%, superficie 40%, commodités 61%, description 100%, images 100%, GPS 100% - fixture: ok · test: ok ## Champs extraits - Le portail /fr/residential embarque le module « inventory » Livya (client `thrace`, ~143 immeubles). Ce module charge ses unités côté client via **api.realvuu.com — robots.txt `Disallow: /` : API volontairement non utilisée**. Contournement conforme : les pages « plans » des trois projets Livya du client (`thrace`, `radisson`, `carree-radisson`) sur app.livya.com (robots permissif, `Allow: /`) sont rendues côté serveur — leur flux RSC (`self.__next_f.push`) contient l'inventaire JSON complet, comme pour somex_saintnicolas/louis14/quartier_sila. - 6 requêtes par sync : page WordPress (data-client + data-entity), sitemap public d'app.livya.com (découverte des slugs de projets, replis constants), 3 pages de plans, 1 dédup. - Par unité (`{"unitId": …}` via `raw_decode`) : numéro, statut (AVAILABLE seulement), loyer réel (`rentalPrice` -> prix + `price_label`), pièces (`rooms` 3.5 -> « 3½ »), chambres/sdb (`details`), étage, superficie (`unitSize` IMPERIAL -> `area_sqft`, publiée pour 72 unités), adresse civique + ville + code postal **par unité**, GPS, inclusions/caractéristiques publiées (`attributes` : « Eau chaude », « Animaux interdits », « Stationnement: 1 extérieur »… -> amenities), promotions (`pricePrecision` : « - RABAIS DE 100$ / MOIS » -> description), date de libération future (`futureAvailability.startsOn` -> `availability_date` ISO), photos du type + plan d'étage (CloudFront). - Immeubles (`{"buildingId": …}`) : nom + slug -> titre « Gestions Thrace (Le Bellefeuille) — unité 503 » et URL profonde `?building=` (comprise par le module inventory du site). - `external_id` = `unitId` (UUID Livya) — stable. - Filtres : `availability == AVAILABLE`, `rental == true` (vente exclue), `segment == RESIDENTIAL` (3 locaux commerciaux exclus), `stateCode == QC`. ## Champs indisponibles à la source - Prix : 56 unités AVAILABLE sans loyer publié (`rentalPrice: 0` — prélocation Le Bellefeuille surtout) — prix `None`, jamais inventé. - Superficie : publiée pour 72/181 unités seulement (`unitSize: 0` ailleurs). - Secteur/quartier : non exposé par le flux (ville seulement : Trois-Rivières 180, Bécancour 1). - Animaux/meublé : parfois dans `attributes` (« Animaux interdits ») — repris tel quel, extrait ensuite par le pipeline. ## Fragilités - Le rendu serveur des unités n'existe que sur la route `projects//plans/` d'app.livya.com (le paramètre entity est accepté même pour un module inventory) ; si Livya passe au rendu 100 % client (comme sa route `/units`), le connecteur ne retournera plus rien — alerte de volume au sync. - Découverte des slugs de projets via le sitemap public (`/fr/thrace/projets/`) avec replis constants (`thrace`, `radisson`, `carree-radisson`) : un 4e projet créé chez Livya serait capté par le sitemap. - Pages volumineuses (jusqu'à 6 Mo) — fixture ~10 Mo, dans la lignée de louis14 (2,7 Mo). ## Notes - ~2 500 logements gérés selon l'étude ; 429 unités publiées dans le module (dont 299 NOT_AVAILABLE) -> 181 annonces. - Le total du module inventory (API interdite) affiche 217 unités disponibles : l'écart (~15) correspond à des unités non poussées dans les pages de plans — couverture assumée, sans toucher à l'API. - robots.txt : gestionsthrace.com permissif (Yoast, Disallow vide) ; app.livya.com `Allow: /` ; api.realvuu.com `Disallow: /` (respecté — non utilisé).