# ferrovia — Ferrovia (ferroviamirabel.com)
- site: https://www.ferroviamirabel.com (WordPress + wpDataTables rendues côté serveur ; projet de condos locatifs neufs à Mirabel, secteur Saint-Janvier, 4 phases)
- méthode: html — 3 requêtes par sync (pages « Disponibilités » phases 1, 3 et 4 ; la phase 2 est « à venir », sans page)
- annonces: 23 (phase 3 ×1 « ÉTÉ 2026 », phase 4 ×22 « Automne 2026 » ; les lignes « Loué » — la quasi-totalité des phases 1 et 3 — sont filtrées)
- couverture (sur 23): type 100 %, superficie 100 %, dispo 100 %, ville/secteur 100 %, étage/modèle 100 %, plan PDF ~87 % — **prix 0 % : la colonne PRIX existe mais est vide sur le site** (jamais inventé)
- fixture: ok (3 requêtes) · test: ok (2 verts) · sync: 23 ajoutées
## Champs extraits
- `
` de chaque page phase, colonnes repérées par leur
en-tête (wdt_ID, UNITÉ, MODÈLE, ÉTAGE, PIÈCES, SUPERFICIE p.c.,
SALLE D'EAU SUPP., DISPONIBILITÉ, PRIX, STATUT, PLAN) :
- STATUT ≠ « Disponible » → ligne ignorée (Loué) ;
- external_id = `phase-` (ex. phase4-101) ;
- PIÈCES (« 4 1/2 ») → unit_type (fullmatch, lignes non résidentielles
ignorées) ; SUPERFICIE → area_sqft ; DISPONIBILITÉ (« Automne 2026 »)
→ availability ; MODÈLE/ÉTAGE → details ; lien PDF de la colonne PLAN
→ details.plan_pdf ; « SALLE D'EAU SUPP. = OUI » → commodité.
- Note du site reprise fidèlement : « les logements sont non-fumeurs et les
animaux ne sont pas admis » → pets="non", details.smoking=false,
et phrase en description.
- Ville/secteur : Mirabel / Saint-Janvier (énoncé en tête de chaque page ;
aucune adresse civique publiée sur les pages disponibilités).
## Champs indisponibles à la source
- **Prix** (colonne vide à ce jour — le connecteur les remontera dès qu'ils
seront saisis), adresse civique, photos par unité (la page « photos des
unités » est générique, non associée), GPS.
## Fragilités
- wpDataTables sert ici le HTML complet dans la page ; si le site passait au
chargement AJAX (option du plugin), la table serait vide (test fixture).
- Les en-têtes de colonnes sont mappés par mot-clé : un renommage majeur
(« PIÈCES » → autre) casserait proprement.
- Livraisons « Automne 2026 » : parse_availability_date ne sait pas convertir
une saison — availability_date restera nulle, le texte brut est conservé.
## Échantillon
- phase4-101 : 4½ modèle F, 1er étage, 1200 pi², salle d'eau supp.,
dispo Automne 2026, plan PDF.
- phase3-603 : 3½ modèle E', 6e étage, 950 pi², dispo ÉTÉ 2026.