gendesign/backend/app
Light1YT 0778af5d2c
All checks were successful
CI / changes (push) Successful in 7s
CI / changes (pull_request) Successful in 8s
CI / frontend-tests (push) Successful in 1m5s
CI / frontend-tests (pull_request) Successful in 59s
CI / openapi-codegen-check (push) Successful in 2m10s
CI / openapi-codegen-check (pull_request) Successful in 1m39s
CI / backend-tests (push) Successful in 9m2s
CI / backend-tests (pull_request) Successful in 8m56s
feat(site-finder): additive objective_lots price fallback for competitors (#307 OBJ-3)
competitors._AVG_PRICE_SQL читает domrf_kn_flats.price_per_m2, но на последнем
snapshot эта колонка пуста (0 строк, скрапер перестал отдавать per-flat цены
~2026-06-03) -> avg_price_per_m2=None почти всем конкурентам, price_similarity
вырождается в нейтраль 0.5. Добавлен additive fallback: где domrf-цены нет,
берём медиану objective_lots.price_per_m2_rub через objective_complex_mapping
(1:1 мост, ~80% покрытие, прод-median 136k руб/м²). domrf-цены приоритетны
(precedence domrf > objective); новое поле price_source ('domrf'/'objective')
для прозрачности инвест-рекомендаций. Веса и mv_layout_velocity не тронуты
(#295 defer). Медиана (не weighted-avg) устойчива к хвостам. api-types.ts
regenerated (v7.13.0 pinned + prettier).

Refs #307
2026-06-14 20:59:53 +05:00
..
api feat(site-finder): POI saturation per capita по районам ЕКБ (#42) (#1329) 2026-06-14 15:05:22 +00:00
core fix(audit): run_in_threadpool для write_audit_row в async middleware (#1202) 2026-06-13 05:24:39 +00:00
models feat(jobs): centralized job_settings API + DB-driven beat schedule 2026-05-11 15:38:13 +03:00
observability feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) (#207) 2026-05-16 15:09:16 +00:00
schemas feat(site-finder): additive objective_lots price fallback for competitors (#307 OBJ-3) 2026-06-14 20:59:53 +05:00
scrapers fix(cadastre): NSPD 500-retry + per-layer skip (#252) + disable dead pzz-beat (#259) + geom backfill (#200) 2026-06-13 20:45:05 +05:00
services feat(site-finder): additive objective_lots price fallback for competitors (#307 OBJ-3) 2026-06-14 20:59:53 +05:00
templates fix(snapshot-pdf): Unicode '—' вместо HTML-entity '—' в Jinja or-fallback (#1234) 2026-06-13 15:04:12 +05:00
workers fix(cadastre): NSPD 500-retry + per-layer skip (#252) + disable dead pzz-beat (#259) + geom backfill (#200) 2026-06-13 20:45:05 +05:00
__init__.py init 2026-04-25 13:45:19 +03:00
main.py feat(analytics): velocity-anomaly alerts (#17) + ARN ДДУ price indicator (#99) 2026-06-13 22:04:49 +05:00