FIX A (#1955) «Что хорошо продаётся»: убран фантомный класс 'Comfort'. - Миграция 172: v_bucket_success_score COALESCE(obj_class,'Comfort') → COALESCE(obj_class,'не указан'). Английский литерал заполнял 397 NULL и сливался отдельным классом от русского 'Комфорт' → визуальные дубли бакетов в UI. Источник уже канонически-русский (проверено на проде), synonym-mapping не нужен. - parcels.py: obj_class протаскивается в success-ranking query + dict. - TS SuccessRankingBucket.obj_class добавлен. FIX B (#1960) «Медиана рынка» = 64k (квартальная росреестровская n=1 ДКП): - district.median_price_per_m2 больше не COALESCE(median_12m, ekb_ref) в SQL. Basis-приоритет (newbuild-first): Objective по имени района → geo_radius (Objective в 3км) → ekb_districts reference → квартальная росреестровская медиана ТОЛЬКО при deals_count≥5. Для 66:41:0205010:287: 64k → 132690 (geo_radius, newbuild-consistent). - median_price_basis добавлен в payload + TS type (nullable median). - Frontend null-guards для нового nullable median. Tests: +4 (geo_radius basis, objective-приоритет, deals-guard, obj_class passthrough); обновлены district-моки в 9 analyze-тестах под новую SQL-сигнатуру. |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.json | ||
| Dockerfile | ||
| next-env.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| sentry.client.config.ts | ||
| sentry.edge.config.ts | ||
| sentry.server.config.ts | ||
| tsconfig.json | ||
| vitest-env.d.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||