gendesign/backend/app/services/generative
Light1YT 83a063f0ee
Some checks failed
CI / changes (pull_request) Successful in 7s
CI / frontend-tests (pull_request) Successful in 1m12s
CI / openapi-codegen-check (pull_request) Successful in 2m4s
CI / backend-tests (pull_request) Failing after 14m21s
feat(section7): editable section footprint + корпус plural/program hint (#1953)
PR-B (follow-up к unify-concept). Закрывает «вписать пятно» из round-3:
- BuildingProgramItem получает опциональные footprint_w_m/footprint_d_m
  (float|None, ge=4 le=120, default None → каталог; ADDITIVE, byte-for-byte
  backward-compat). place_program кладёт ручное пятно когда заданы ОБА габарита,
  иначе каталожное. api-types.ts регенерирован под новую схему.
- ConceptProgramForm: пятно секции теперь редактируемое (ширина × глубина);
  пусто → возврат к каталогу; Σ пятно и ориентир КСИТ считаются от эффективного
  габарита. building_program несёт footprint в Section7Concept.
- ConceptVariantsResult: грамматика «корпус» (1 корпус / 2–4 корпуса / 5+
  корпусов) в headline / подписи карты / partial-fit; program-вариант получает
  свой хинт вместо STRATEGY_HINTS[balanced].
- Тесты place_program: footprint-override и partial-footprint fallback.
2026-06-30 13:59:14 +05:00
..
exporters feat(financial): ground-floor нежилое (office/commercial) tranche 2026-06-25 11:40:01 +00:00
__init__.py feat(generative): движок концепций Stage 1a/1b/1c (#54 #55 #56) 2026-06-13 21:32:32 +05:00
catalog.py feat(concept): house-type catalog + program-driven placement (#1965 Stage 3a) 2026-06-28 01:29:04 +05:00
financial.py feat(financial/dcf): dormant separate-index inflation capability (default OFF) 2026-06-25 12:12:02 +00:00
geometry.py feat(generative): calibrate finmodel sale price from Objective market data (epic #1881 PR-2) 2026-06-23 21:10:25 +05:00
placement.py feat(section7): editable section footprint + корпус plural/program hint (#1953) 2026-06-30 13:59:14 +05:00
teap.py feat(generative): LIVE financial recompute from massing program (#1965 Stage 2a) 2026-06-28 00:27:25 +05:00