fix(tradein): восстановленная оценка показывает этаж/площадь, не 0/0 #424

Merged
lekss361 merged 1 commit from fix/tradein-restore-estimate-params into main 2026-05-22 10:51:04 +00:00
Owner

Проблема

Оценка, открытая по ссылке (?id=, из «Истории»), показывала в
«Сводке» «ЭТАЖ 0/0, Площадь 0 м²» — параметры целевой квартиры
терялись. Свежая оценка показывала их верно.

Причина

AggregatedEstimate не содержал площадь/этаж/комнаты/год/тип дома
целевой квартиры. HeroSummary брал их из формы-инпута (input):
у свежей оценки форма заполнена, а при восстановлении по ?id=
формы нет → 0/0.

Решение

Параметры проходят сквозь весь стек:

  • AggregatedEstimate (+ TS-тип) получили area_m2, rooms,
    floor, total_floors, year_built, house_type,
    repair_state, has_balcony (все optional);
  • estimate_quality заполняет их из payload;
  • get_estimate — из строки trade_in_estimates (колонки там уже
    есть, в т.ч. у старых оценок);
  • HeroSummary читает из estimate с откатом на input.

Поля optional → конструкция AggregatedEstimate в PDF-эндпоинте не
ломается (там параметры и так идут через input_snapshot). Заодно в
TS-тип добавлен пропущенный est_days_on_market.

Найдено визуальным прогоном UI на проде.

## Проблема Оценка, открытая по ссылке (`?id=`, из «Истории»), показывала в «Сводке» **«ЭТАЖ 0/0, Площадь 0 м²»** — параметры целевой квартиры терялись. Свежая оценка показывала их верно. ## Причина `AggregatedEstimate` не содержал площадь/этаж/комнаты/год/тип дома целевой квартиры. `HeroSummary` брал их из формы-инпута (`input`): у свежей оценки форма заполнена, а при восстановлении по `?id=` формы нет → 0/0. ## Решение Параметры проходят сквозь весь стек: - `AggregatedEstimate` (+ TS-тип) получили `area_m2`, `rooms`, `floor`, `total_floors`, `year_built`, `house_type`, `repair_state`, `has_balcony` (все optional); - `estimate_quality` заполняет их из `payload`; - `get_estimate` — из строки `trade_in_estimates` (колонки там уже есть, в т.ч. у старых оценок); - `HeroSummary` читает из `estimate` с откатом на `input`. Поля optional → конструкция `AggregatedEstimate` в PDF-эндпоинте не ломается (там параметры и так идут через `input_snapshot`). Заодно в TS-тип добавлен пропущенный `est_days_on_market`. Найдено визуальным прогоном UI на проде.
lekss361 added 1 commit 2026-05-22 10:50:43 +00:00
AggregatedEstimate не нёс параметры целевой квартиры (площадь, этаж,
комнаты, год, тип дома). HeroSummary брал их из формы-инпута — у
свежей оценки работало, но при открытии оценки по ссылке (?id=, из
Истории) формы нет → «Сводка» показывала «ЭТАЖ 0/0, Площадь 0 м²».

Параметры теперь проходят сквозь весь стек:
- AggregatedEstimate + TS-тип получили area_m2/rooms/floor/
  total_floors/year_built/house_type/repair_state/has_balcony;
- estimate_quality заполняет их из payload, get_estimate — из строки
  trade_in_estimates (колонки там уже есть);
- HeroSummary читает из estimate с откатом на input.

Заодно в TS-тип добавлен пропущенный est_days_on_market.
lekss361 merged commit 7a9b183296 into main 2026-05-22 10:51:04 +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#424
No description provided.