gendesign/tradein-mvp/backend/app
lekss361 3b8e7d826d feat(tradein): enrich /estimate response for web map, distribution, exposure & trend
Additive + optional fields for upcoming web features:
- analogs[]/actual_deals[] now carry lat/lon (radius comps ~100% covered, deals
  100%) — were projected in SQL but discarded at the AnalogLot step.
- price_trend: monthly ₽/m² series (houses_price_dynamics → house_placement_history
  fallback; 2347 houses covered, houses_price_dynamics empty in prod).
- last_scraped_at (absolute companion to data_freshness_minutes).
All nullable/graceful → zero risk to existing consumers. 237 estimator tests pass.
NOTE: price_trend/last_scraped_at computed on POST only (GET/{id} returns None) —
small follow-up if trend-on-reopen needed.

Refs #647 #667
2026-05-30 10:19:00 +03:00
..
api fix(tradein): time-budget estimate enrichment + observable errors to stop opaque 502 (#654) (#673) 2026-05-29 17:22:02 +00:00
core feat(tradein): brand-by-account + result IA redesign (distinct asking/sale prices) (#683) 2026-05-30 06:45:14 +00:00
observability feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00
schemas feat(tradein): enrich /estimate response for web map, distribution, exposure & trend 2026-05-30 10:19:00 +03:00
services feat(tradein): enrich /estimate response for web map, distribution, exposure & trend 2026-05-30 10:19:00 +03:00
tasks feat(tradein): daily asking→sold ratio refresh (#648 S4) (#663) 2026-05-29 13:49:36 +00:00
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
main.py feat(tradein): enrich GlitchTip SDK init — integrations + PII scrub (#396) (#643) 2026-05-29 09:23:17 +00:00