Skip to content
# hazelview — Hazelview Properties (ex-Timbercreek)
- API
/v2/search (par ville QC × nombre de chambres) : nom, adresse + code postal, loyer min/max, stats superficie, nb d'unités dispo, description (overview), lat/lng, statut de disponibilité.
- Nouveaux champs structurés de l'API : pets (
pet_friendly bool → oui/non), contact de location (contact.phone/email par immeuble → details.contact, relais de tracking leadmanaging exclus), area_sqft (stats square_feet.min du type quand > 0).
- Page immeuble du site (nouveau, via
self.detail + cache BD, 1 requête par immeuble) — JSON complet embarqué dans data-locations du widget carte :
- commodités réelles (liste
Amenities, 30/immeuble : Air conditioner, Elevators, Laundry facilities, No smoking allowed… → inclusions/smoking dérivés par finalize) — avant : details.features de l'API, vide (amenities 0/6) ;
- galerie photos (13-15 images par immeuble au lieu d'une seule) ;
- animaux détaillés (
pets_small_dogs/pets_large_dogs/pets_cats/pets_not_allowed → oui/non/conditions si certains types refusés) ;
- suites du type demandé : superficie par unité (
sq_ft, min des unités disponibles), date de disponibilité précise si toutes publiées, meublé si toutes les unités le sont.
# Champs indisponibles à la source
- Superficie : 1 immeuble (1405 Bishop) ne publie aucun
sq_ft (ni stats ni suites).
- Dates précises :
availability_date des suites presque toujours « 0000-00-00 » (= disponible maintenant) ; le libellé « Available Now » reste la source.
Utilities (inclusions) : null sur les immeubles QC actuels.
# Fragilités
- Jeton public
auth_token embarqué dans le JS du site : peut tourner.
- Le portefeuille QC ne compte plus qu'une ville active (Montréal, 3 immeubles) — les autres villes du mapping (
Verdun, Longueuil…) n'ont plus de propriétés actives.
- Le JSON
data-locations est un attribut HTML du widget carte : un refactor du site le déplacerait ; l'API /v2 n'expose pas d'endpoint par propriété (404).
- Contenu du site partiellement en anglais (amenities, « Available Now ») — normalize gère les deux langues.
# Améliorations apportées
- Enrichissement par page immeuble avec cache BD (
self.detail, clé = pid|dispo|adresse, mémo en mémoire pour ne fetcher qu'une fois par immeuble malgré plusieurs annonces par type d'unité) + budget 150 vraies requêtes.
- Commodités 0/6 → 6/6 (30 items réels), images 1 → 13-15, pets 4/6 → 6/6 (dont « conditions » granulaire), contact par immeuble, superficie par suite (Tour Sherbrooke Studio : 670 → 350 pi², superficie réelle de l'unité disponible),
smoking dérivé (« No smoking allowed »).
# Échantillon avant/après
- Avant : « 1405 Bishop — Studio » — 1425 $, amenities [], 1 image, pets NULL, details {price_from}.
- Après : même annonce — pets=conditions (petits chiens + chats oui, grands chiens non), 14 images, 30 amenities, contact 438-700-8567 / 1405bishop@hazelview.com, smoking=false, elevator/laundry dérivés.
- Après : « 4545 Walkley — 5½ » — area_sqft 1200 (suite disponible), gym/balcony/storage/parking dérivés, contact complet.