gendesign/tradein-mvp/backend/app/services
lekss361 7f03a5b634 feat(tradein): cian_state_parser shared utility + ScrapedLot Cian fields
- Add cian_state_parser.py: regex-based extractor for window._cianConfig push() entries,
  supports direct JSON, JSON.parse() escaped form, and optional demjson3 fallback
- Extend ScrapedLot in base.py with 13 Cian-specific fields (living_area_m2,
  bedrooms_count, balconies_count, loggias_count, description_minhash,
  cadastral_number, building_cadastral_number, phones, is_homeowner, is_pro_seller,
  bargain_allowed, sale_type, metro_stations)
- Add tests/test_cian_state_parser.py with 4 unit tests covering all parse strategies
2026-05-23 15:24:50 +03:00
..
exporters fix(tradein): security hotfix — C-3 config default + C-4 empty estimate persist + C-6 PDF URL allowlist (#435) 2026-05-23 09:38:23 +00:00
scrapers feat(tradein): cian_state_parser shared utility + ScrapedLot Cian fields 2026-05-23 15:24:50 +03:00
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
brand.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
estimator.py fix(tradein): security hotfix — C-3 config default + C-4 empty estimate persist + C-6 PDF URL allowlist (#435) 2026-05-23 09:38:23 +00:00
geocoder.py fix(tradein): map-picker подставляет уличный адрес, а не название POI 2026-05-22 13:32:39 +05:00
house_metadata.py feat(tradein): кадастр зданий как источник house_metadata (#393) 2026-05-22 10:54:42 +05:00