gendesign/tradein-mvp/backend/app/core
bot-backend 4d93e5a1aa fix(ratio): ppm² потолок asking→sold в конфиг, default 1.2M (Refs #767)
asking_to_sold_ratio фильтровал сделки по хардкоду price_per_m2 BETWEEN
30000 AND 600000 (4 CTE) → премиум ЕКБ >600k выпадал → ratio из global-fallback
→ bias выкупной цены премиума. Все 4 хардкода → BETWEEN :ppm2_min AND :ppm2_max
(bind-params, не f-string). settings.asking_ratio_ppm2_max default 1_200_000
(env ASKING_RATIO_PPM2_MAX), _PPM2_MIN=30_000. Docstring обновлён.

NB: точный потолок верифицировать QA против SELECT max(price_per_m2) FROM deals
WHERE source='rosreestr' (worker без live-DB; 1.2M — запас, env-override без
деплоя). pytest -k asking 21 pass, ruff clean.
2026-05-30 19:51:18 +03:00
..
__init__.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
auth.py feat(tradein): brand-by-account + result IA redesign (distinct asking/sale prices) (#683) 2026-05-30 06:45:14 +00:00
config.py fix(ratio): ppm² потолок asking→sold в конфиг, default 1.2M (Refs #767) 2026-05-30 19:51:18 +03:00
db.py feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
fdw.py feat(tradein): postgres_fdw live read of gendesign.cad_buildings (replaces snapshot) (#493) 2026-05-24 08:57:30 +00:00
ratelimit.py fix(tradein): bypass rate-limit for authenticated pilots + configurable limit (#655) (#669) 2026-05-29 15:56:30 +00:00