gendesign/backend/tests/api
bot-backend 6471900592
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
CI / changes (pull_request) Successful in 11s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 1m53s
CI / backend-tests (pull_request) Successful in 14m49s
fix(site-finder): per-object latest snapshot в competitors avg-price SQL (#2445-A5)
_AVG_PRICE_SQL фильтровал domrf_kn_flats по одной глобальной MAX(snapshot_date),
но таблица — per-object time series (UNIQUE(obj_id, snapshot_date)). На глобальной
дате обычно присутствует лишь 1 объект → у всех остальных конкурентов 0 строк →
avg_price_per_m2=NULL → _price_similarity падает на нейтральные 0.5, молча
деградируя relevance-ранжирование.

Портируем flats_latest DISTINCT ON (obj_id) ... ORDER BY snapshot_date DESC, id DESC
CTE из best_layouts.py (#1956) — каждый конкурент берёт СВОЙ последний снапшот.
Индекс 174_domrf_kn_flats_obj_snapshot_idx уже обслуживает CTE (новая миграция
не нужна). Objective-fallback композиция не тронута: missing_price_ids считается
после domrf-запроса → естественно сжимается.

Refs #2445
2026-07-05 23:31:23 +05:00
..
v1 fix(site-finder): per-object latest snapshot в competitors avg-price SQL (#2445-A5) 2026-07-05 23:31:23 +05:00
__init__.py feat(cadastre): bulk_harvest worker + grid-walker + admin API (#168 PR3/5) (#171) 2026-05-15 13:31:32 +03:00