gendesign/tradein-mvp/backend/app
lekss361 a5bb79bc59 fix(tradein): run same-building anchor without radius analogs (#691)
На проде геокод часто отдаёт lat/lon=None → ST_DWithin не находит радиусные
аналоги → median_price=0, и same-building якорь скипался: его гейт требовал
listings_clean (непустой радиус) + median_price>0. При этом комплы того же
дома реально есть — _fetch_anchor_comps резолвит дом по payload.address без
геокода (Ткачёва 13 → «улица Ткачей, 13», 27 комплов; Сакко 99).

Гейт ослаблен до resolved-таргета: area_m2 + (payload.address|geo.full_address),
независимо от радиусных аналогов. Новый гейт — супермножество старого (при
непустом радиусе адрес всегда есть), так что ранее-якорившиеся кейсы не
меняются. Если комплов реально нет — _compute_same_building_anchor вернёт None
и мутации median/range не будет (идентично insufficient-пути).

Тесты: anchor срабатывает при пустом радиусе (median>0); контроль — без комплов
и без радиуса median остаётся 0 (не фабрикуем число).

Closes #691
2026-05-30 11:25:59 +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 (#685) 2026-05-30 07:32:40 +00:00
services fix(tradein): run same-building anchor without radius analogs (#691) 2026-05-30 11:25:59 +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