[feat] Консолидация фин-модели/Концепции в отчёт + интерактив house-picker → 3D → пересчёт (эпик #1953) #1965

Closed
opened 2026-06-27 08:47:42 +00:00 by bot-backend · 0 comments
Collaborator

Часть аудита #1953. Крупный продуктовый запрос (D1/D2) — поэтапно.

Текущее состояние:

  • Фин-модель УЖЕ в ПТИЦА-отчёте как financial_estimate (drawer «Финансовая модель»/«Экономика»). Для 66:41:0205010:287 она NULL → заглушка (вероятно из-за СЗЗ/нежилого ВРИ — buildability gate; см. #1957).
  • /concept — отдельный продукт-флоу со своим контрактом ConceptInput (parcel_geojson + housing_class + target_floors + development_type + land_cost_rub). Генератор: участок → отступ 6м → сетка 3×3м → жадно ставит секции фикс. габаритов до coverage-cap = max-FAR buildout всей площади.
  • 3D MassingScene (Three.js) — интерактивная песочница (ползунки этажность 3-40, секций 1-6, время суток), computeModel выводит ТОЛЬКО геометрию+GFA+КСИТ. Финрасчёта в 3D НЕТ (разрыв с compute_financial).

Roadmap:

  • Этап 1 (S, ~2-3д): вкладка «Концепция» в отчёте (PticaTab рядом с Анализ/Сценарии/Отчёты/Сравнение) с существующим ConceptVariantsResult, geom из /analyze, дефолты из financial_estimate. Убирает страницу-сироту /concept. = консолидация D1.
  • Этап 2 (M, ~1нед): живая экономика — ползунки MassingScene → building-program (этажность×секций×пятно из computeModel) → compute_financial/synthesize_teap_from_buildability (чистые функции) → пересчёт TEAP/NPV/IRR по выбранной модели, а не по авто-максимуму. = ядро D2.
  • Этап 3 (M/L): каталог типовых домов (ConceptInput.building_program = список {section_type, floors, count} | house_id), placement раскладывает выбранное, picker UI.

Обсудить очередность/скоуп до старта реализации.

Часть аудита #1953. Крупный продуктовый запрос (D1/D2) — поэтапно. **Текущее состояние:** - Фин-модель УЖЕ в ПТИЦА-отчёте как `financial_estimate` (drawer «Финансовая модель»/«Экономика»). Для 66:41:0205010:287 она NULL → заглушка (вероятно из-за СЗЗ/нежилого ВРИ — buildability gate; см. #1957). - `/concept` — отдельный продукт-флоу со своим контрактом `ConceptInput` (parcel_geojson + housing_class + target_floors + development_type + land_cost_rub). Генератор: участок → отступ 6м → сетка 3×3м → жадно ставит секции фикс. габаритов до coverage-cap = **max-FAR buildout всей площади**. - 3D `MassingScene` (Three.js) — интерактивная песочница (ползунки этажность 3-40, секций 1-6, время суток), `computeModel` выводит ТОЛЬКО геометрию+GFA+КСИТ. **Финрасчёта в 3D НЕТ** (разрыв с `compute_financial`). **Roadmap:** - **Этап 1 (S, ~2-3д):** вкладка «Концепция» в отчёте (`PticaTab` рядом с Анализ/Сценарии/Отчёты/Сравнение) с существующим `ConceptVariantsResult`, geom из `/analyze`, дефолты из `financial_estimate`. Убирает страницу-сироту `/concept`. = консолидация D1. - **Этап 2 (M, ~1нед):** живая экономика — ползунки `MassingScene` → building-program (этажность×секций×пятно из `computeModel`) → `compute_financial`/`synthesize_teap_from_buildability` (чистые функции) → пересчёт TEAP/NPV/IRR по выбранной модели, а не по авто-максимуму. = ядро D2. - **Этап 3 (M/L):** каталог типовых домов (`ConceptInput.building_program` = список {section_type, floors, count} | house_id), placement раскладывает выбранное, picker UI. Обсудить очередность/скоуп до старта реализации.
Sign in to join this conversation.
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#1965
No description provided.