# cosoltec — Cosoltec (Evado, Le Monroe, Natür) - site: https://www.cosoltec.com/fr (constructeur-gestionnaire ; vitrines locatives evado.ca, lemonroe.ca, naturcondos.ca) - méthode: API JSON Planpoint — le widget des 3 vitrines charge app.planpoint.io/api/{groups,projects}/find (POST namespace+hostName, 3 requêtes/sync, robots Planpoint : Allow /) - annonces: 51 unités « Available » (Evado I+II Sainte-Thérèse : 41, Natür Saint-Jérôme : 9, Le Monroe Blainville : 1) - couverture (sur 51 annonces): prix 82% (les 9 unités Natür n'ont aucun prix publié), superficie 100%, type 100% (chambres → 3½/4½/5½/Studio), adresse 100%, ville 100%, dispo 100%, images 100% (photos + plan), sdb/étage 100% — description/GPS complets jamais publiés - fixture: ok (3 requêtes) · test: ok (2 verts) ## Champs extraits - cosoltec.com est une vitrine SvelteKit sans annonces ; sa page « Espaces disponibles » renvoie aux sites projets, qui affichent tous leurs unités via l'iframe Planpoint : - evado.ca/plans → groupe `evado/evado` (projets Evado + Evado 2) ; - lemonroe.ca/plans → groupe `monroe/monroe` (Le Monroe 1 + 2) ; - naturcondos.ca → projet `cosolte/Natur` (endpoint projects/find). - Par unité (JSON structuré) : `_id` Planpoint (ObjectId) = external_id stable ; `price` (loyer mensuel numérique → price + price_label « 1800 $ /mois » ; vide si absent, jamais inventé) ; `squareFeet` → area_sqft ; `bedrooms` (« Studio », « 1 bedroom »…) → unit_type via normalize_unit_type ; `availability` brut (« Available ») ; `furnished` (booléen de la plateforme) ; `bathrooms` + nom d'étage → details ; photos + plan (`images`, `layoutGallery`). - Par projet : adresse civique (« 350 Place Fabien-Drapeau, Sainte-Thérèse… ») → address + ville réelle ; repli ville documentée par vitrine (Le Monroe 1 a une adresse vide chez Planpoint → Blainville, confirmé par cosoltec.com et lemonroe.ca). - Filtre strict : seules les unités `availability == "Available"` (Sold/Leased/Reserved/Future sautées). `projectType` = "Rental" pour les 3 vitrines (Natür est bien locatif malgré son nom « Condos »). - URL d'annonce = page plans de la vitrine (Planpoint n'expose pas de page publique par unité). ## Champs indisponibles à la source - Prix des 9 unités Natür : `price: null` chez Planpoint (la vitrine affiche « Réservez » sans prix) → price_label vide. - Description par unité, date précise de disponibilité, animaux : jamais publiés dans le JSON. - GPS : `lat` présent mais `lon` null chez Planpoint → non utilisé (le géocodeur prendra le relais sur l'adresse civique). ## Fragilités - API non documentée (celle du widget) : un changement de schéma ou l'ajout d'une authentification casserait le connecteur ; le POST passe par la session du connecteur (record/replay des fixtures ok). - Le statut « Available » est celui de la plateforme de mise en marché : quelques unités « Reserved » pourraient revenir disponibles sans transition visible ici. - Si Cosoltec ajoute une vitrine locative (ex. Astra Valleyfield, actuellement sans widget locatif), il faudra l'ajouter à `_SITES`. ## Échantillon - 67a7bcc4008d9b0c6f1e1d35 : Evado — Unité 204, Sainte-Thérèse, 3½, 1800 $/mois, 693 pi², photos + plan. - 689f78502ad58db540a18f88 : Evado 2 — Unité 104, Sainte-Thérèse, 3½, 1665 $/mois, 628 pi². - 644af0f53e62620016106c7e : Natur Condos — Unité 105-1, Saint-Jérôme, 4½, 1078 pi², prix non publié.