fix(site-finder): фронт light-отчёта — encumbrance/obj_class/ЗОУИТ display + forecast axis & flat-state (#1954 #1955 #1957 #1958) #1985

Merged
bot-backend merged 1 commit from fix/report-frontend-display-1953 into main 2026-06-27 12:00:14 +00:00
Collaborator

Батч 3a аудита (эпик #1953) — фронт-дисплей фиксы поверх уже задеплоенных бэкенд-полей. code-reviewer APPROVE.

Фиксы

  • #1954 «Обременения» (Section1ParcelInfo + site-finder-api): строка ЕГРН-таблицы из data.encumbrance {has_zouit, zouit_count, zouit_types} → «ЗОУИТ: 4 (Санитарно-защитная зона)» (было хардкод «—»). Override общий для экрана и экспорта.
  • #1955 obj_class в «Что хорошо продаётся» (SuccessRecommendationBlock): лейбл «{бакет} · {класс}» → дубли-бакеты теперь различимы (defensive к старым кэш-ранам без obj_class).
  • #1957 ЗОУИТ + СЗЗ-баннер (NspdZouitOverlapsBlock): рендер type_zone + reg_numb_border; caveat-баннер (стиль power_line warning, role=alert, Lucide) когда тип содержит «Санитарно-защитн» — поясняет ограничение жилья по СанПиН 2.2.1/2.1.1.1200-03; подсветка «СЗЗ вашего участка» если overlap ссылается на кад.номер участка (parcelCad прокинут из Section4Estimate + LandTab). Raw hex → UI-токены.
  • #1958 ForecastChart: оси nameLocation:middle + nameGap (40/48) + rotate (не налезают на легенду); экспортируемый isDeficitDegenerate + серый flat-state callout когда дефицит вырожден (все точки равны и ≈±1, или scenarios_collapsed) — честно, реальная дифференциация = бэкенд #1959.

Качество

  • tsc --noEmit clean; next lint clean; prettier 3.9.0 (пин) clean; pre-commit Passed.
  • Тесты: 183/183 (15 новых: formatEncumbrance ×6, forecastChart-degenerate ×9).
  • Все поля consume опционально+nullable (backward-compat со старыми кэш-ранами). Локальный next build падает на @rollup/rollup-darwin-x64 (npm optional-deps env-баг darwin, не из диффа; CI Linux не задет).

Closes-part-of #1954 #1955 #1957 #1958 (бэкенд частей уже в main; остаются фронт-хвосты #1962 градрегламент + #1961 карта — Батч 3b).

Батч 3a аудита (эпик #1953) — фронт-дисплей фиксы поверх уже задеплоенных бэкенд-полей. code-reviewer ✅ APPROVE. ## Фиксы - **#1954 «Обременения»** (`Section1ParcelInfo` + `site-finder-api`): строка ЕГРН-таблицы из `data.encumbrance {has_zouit, zouit_count, zouit_types}` → «ЗОУИТ: 4 (Санитарно-защитная зона)» (было хардкод «—»). Override общий для экрана и экспорта. - **#1955 obj_class в «Что хорошо продаётся»** (`SuccessRecommendationBlock`): лейбл «{бакет} · {класс}» → дубли-бакеты теперь различимы (defensive к старым кэш-ранам без obj_class). - **#1957 ЗОУИТ + СЗЗ-баннер** (`NspdZouitOverlapsBlock`): рендер `type_zone` + `reg_numb_border`; caveat-баннер (стиль power_line warning, `role=alert`, Lucide) когда тип содержит «Санитарно-защитн» — поясняет ограничение жилья по СанПиН 2.2.1/2.1.1.1200-03; подсветка «СЗЗ вашего участка» если overlap ссылается на кад.номер участка (`parcelCad` прокинут из Section4Estimate + LandTab). Raw hex → UI-токены. - **#1958 ForecastChart**: оси `nameLocation:middle` + `nameGap` (40/48) + rotate (не налезают на легенду); экспортируемый `isDeficitDegenerate` + серый flat-state callout когда дефицит вырожден (все точки равны и ≈±1, или `scenarios_collapsed`) — честно, реальная дифференциация = бэкенд #1959. ## Качество - `tsc --noEmit` clean; `next lint` clean; prettier 3.9.0 (пин) clean; pre-commit Passed. - Тесты: **183/183** (15 новых: formatEncumbrance ×6, forecastChart-degenerate ×9). - Все поля consume опционально+nullable (backward-compat со старыми кэш-ранами). Локальный `next build` падает на `@rollup/rollup-darwin-x64` (npm optional-deps env-баг darwin, не из диффа; CI Linux не задет). Closes-part-of #1954 #1955 #1957 #1958 (бэкенд частей уже в main; остаются фронт-хвосты #1962 градрегламент + #1961 карта — Батч 3b).
bot-backend added 1 commit 2026-06-27 11:57:51 +00:00
fix(site-finder): wire encumbrance/obj_class/ЗОУИТ display + forecast axis & flat-state (#1953)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 51s
CI / openapi-codegen-check (pull_request) Successful in 1m45s
6adba229f0
Four frontend display fixes for the Site Finder analysis report (audit #1953);
all consume fields the (already-deployed) backend now returns.

- #1954: ЕГРН «Обременения» row was hardcoded «—». Wire top-level
  `encumbrance` block {has_zouit, zouit_count, zouit_types} via
  formatEncumbrance → «ЗОУИТ: N (types)» / «не выявлено (НСПД)».
- #1955: show obj_class per success bucket («Студии 15-30 · Комфорт») so
  rows with identical area-labels are distinct; fix top-row match + React key
  to (bucket, obj_class).
- #1957: NspdZouitOverlapsBlock renders human type_zone + reg_numb_border,
  adds a СЗЗ caveat banner (СанПиН 2.2.1/2.1.1.1200-03) and «СЗЗ вашего
  участка» highlight; switched raw hex to UI tokens.
- #1958: ForecastChart axis names → nameLocation:middle + nameGap (no legend
  overlap); grey flat-state callout when the deficit line is degenerate
  (scenarios_collapsed or all points clamped at ±1).

Tests: formatEncumbrance + isDeficitDegenerate (15 new). Real segment
differentiation is backend #1959 (separate).
bot-backend merged commit c1e0ccb2e8 into main 2026-06-27 12:00:14 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1985
No description provided.