fix(ptica): populate scan cards with real /analyze data + product tabs + map zoom #1857

Merged
bot-backend merged 1 commit from fix/ptica-parity-data-mapping into main 2026-06-20 21:18:46 +00:00
Collaborator

Closes the visual-parity gap with the prototype. Verified by rendering the real prod cockpit locally (a captured /analyze+/forecast fixture) and diffing region-by-region against the prototype — most cockpit «—» was UNMAPPED data, not missing data.

  • РЫНОК: Поглощение market_pulse.avg_velocity_m2, +Конкурентов market_pulse.competitors_total (20), Уровень спроса market_trend.label; Медиана + Новых проектов kept. Prototype row order.
  • СРЕДА (adaptEnvironmentCard(analysis)): Шум noise.estimated_db, Воздух PM2.5 air_quality.pm2_5, Ветер wind, Водоёмы hydrology.nearest.
  • ГРАДОСТРОИТЕЛЬСТВО: Пятно застройки = area × nspd_zoning.max_building_pct/100 (4 056 м²).
  • RECOMMENDED PRODUCT: prototype class tabs (бизнес/комфорт/эконом present in mix), default = recommended; per-class honest empty-state kept.
  • MAP: dark-styled ZoomControl (+/-) + ScaleControl.
  • types: optional MarketPulse/MarketPrice on ParcelAnalysis (no any).

Honesty preserved: ЭКОНОМИКА / INVESTMENT CLEARANCE stay «после финмодели §23» (not built); the 0%/«нельзя»/all-«избегать» verdict is this parcel's real result. Every new value traces to a real fixture field (adversarial review confirmed — no fabrication).

Gates: tsc 0 · lint clean · build OK. Reviewed ⚠️minor (AQI→PM2.5 label) → fixed.

🤖 Generated with Claude Code

Closes the visual-parity gap with the prototype. Verified by rendering the **real** prod cockpit locally (a captured /analyze+/forecast fixture) and diffing region-by-region against the prototype — most cockpit «—» was UNMAPPED data, not missing data. - **РЫНОК**: Поглощение `market_pulse.avg_velocity_m2`, **+Конкурентов** `market_pulse.competitors_total` (20), Уровень спроса `market_trend.label`; Медиана + Новых проектов kept. Prototype row order. - **СРЕДА** (`adaptEnvironmentCard(analysis)`): Шум `noise.estimated_db`, Воздух PM2.5 `air_quality.pm2_5`, Ветер `wind`, Водоёмы `hydrology.nearest`. - **ГРАДОСТРОИТЕЛЬСТВО**: Пятно застройки = area × `nspd_zoning.max_building_pct`/100 (4 056 м²). - **RECOMMENDED PRODUCT**: prototype class tabs (бизнес/комфорт/эконом present in mix), default = recommended; per-class honest empty-state kept. - **MAP**: dark-styled `ZoomControl` (+/-) + `ScaleControl`. - types: optional `MarketPulse`/`MarketPrice` on `ParcelAnalysis` (no any). Honesty preserved: ЭКОНОМИКА / INVESTMENT CLEARANCE stay «после финмодели §23» (not built); the 0%/«нельзя»/all-«избегать» verdict is this parcel's real result. Every new value traces to a real fixture field (adversarial review confirmed — no fabrication). Gates: tsc 0 · lint clean · build OK. Reviewed ⚠️minor (AQI→PM2.5 label) → fixed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
bot-backend added 1 commit 2026-06-20 21:18:38 +00:00
fix(ptica): populate scan cards with real /analyze data + product tabs + map zoom
All checks were successful
CI / changes (pull_request) Successful in 7s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 54s
CI / openapi-codegen-check (pull_request) Successful in 1m53s
5587154327
Verified against a real captured /analyze+/forecast fixture rendered locally:
much of the cockpit's «—» was unmapped data, not missing data.

- РЫНОК: map Поглощение (market_pulse.avg_velocity_m2), add Конкурентов
  (market_pulse.competitors_total), Уровень спроса (market_trend.label);
  keep Медиана + Новых проектов. Prototype row order.
- СРЕДА (adaptEnvironmentCard now takes analysis): Шум (noise.estimated_db),
  Воздух PM2.5 (air_quality.pm2_5), Ветер (wind dir + max_speed), Водоёмы
  (hydrology nearest). Honest «—» where genuinely absent.
- ГРАДОСТРОИТЕЛЬСТВО: Пятно застройки = area × max_building_pct/100 (real).
- RECOMMENDED PRODUCT: prototype class tabs (обж_class present in mix),
  default = recommended class; per-class honest empty-state preserved.
- MAP: dark-styled ZoomControl (+/-) + ScaleControl, matching prototype.
- types: optional MarketPulse/MarketPrice on ParcelAnalysis (no any).

Economy/Investment-clearance stay «после финмодели §23» (not built); the
0%/«нельзя»/all-«избегать» verdict is the parcel's real result, not a bug.
bot-backend merged commit ea20d8688a into main 2026-06-20 21:18:46 +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#1857
No description provided.