gendesign/tradein-mvp/backend
lekss361 c60d394ff0 feat(tradein): этаж/этажность optional + best test presets по deal count
UX: floor и total_floors теперь optional — все 6 мест в estimator.py уже
имеют None-guards (Tier H/IMV/Cian валидируют наличие до вызова).
При None — Tier H/IMV/Cian skip, оценка через Tier W (wide) с понижением
confidence до medium/low. Critical guard: tradein.deals также не имеют
жёстких NOT NULL на этих полях — schema-only change достаточен.

Test presets: заменены на top-6 ЕКБ улиц по deal_count за 12 мес
(rosreestr_deals ДКП квартиры):
  - Академика Ландау (686 сделок/год, Академический новостройки)
  - Малышева 84 (центр классика — оставлен)
  - Краснолесья (487 сделок/год, Академический эконом)
  - Космонавтов 50 (415 сделок/год, Уралмаш бюджет)
  - 8 Марта 80 (305 сделок/год, центр Ленинский)
  - Московская (426 сделок/год, центр премиум)

Разброс: 4 района, размеры 35-75м², 1-3 комнаты, цены 120-185 К ₽/м².
Все адреса дают medium+ confidence из-за объёма ДКП-сделок на улице.
2026-05-25 00:20:08 +03:00
..
app feat(tradein): этаж/этажность optional + best test presets по deal count 2026-05-25 00:20:08 +03:00
data/sql feat(tradein): Phase C — Avito IMV per-house backfill (SQL + script) (#534) 2026-05-24 14:50:31 +00:00
tests fix(tradein): extract_street_name handles Nominatim reverse format (#557) 2026-05-24 21:03:42 +00:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
pyproject.toml fix(tradein-photos): sanitize uploaded images via Pillow re-encode (#511) 2026-05-24 11:32:04 +00:00