feat(generative): POST /concepts/recompute — live финрасчёт по massing-program (#1965 Stage 2a) #2024
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2024
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/concept-recompute-1965-stage2a"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#1965 Stage 2a (эпик #1953) — backend для живого пересчёта экономики от интерактивного 3D. code-reviewer ✅ APPROVE. Бэкенд-онли, без миграций, аддитивно.
Что
synthesize_teap_from_program(total_footprint_sqm, floors, site_area_sqm, housing_class, sections=1)(teap.py) — чистая: built=footprint, GFA=footprint×floors, те же константы share/efficiency что уsynthesize_teap_from_buildability/compute_teap(drift невозможен; parity-тест = byte-equal TEAP с compute_teap на эквивалентном прямоугольнике).MassingProgram+MassingRecomputeOutput(Literal-наборы точно как у ConceptInput/compute_financial).POST /api/v1/concepts/recompute→ synthesize_teap_from_program → существующийcompute_financial→ TEAP+FinancialModel.market_price_per_sqm(FAST, без БД) →_lookup_market_price(threadpool, если естьparcel_centroid_wkt) → class_norm.price_sourceпробрасывается (честный флаг происхождения цены — не мислейблит).Безопасность
:name::type; 125 passed (+ 12 новых: gfa-математика, parity, class-efficiency, price passthrough/fallback, bounds 1-40/1-6, exploding-session доказывает no-DB на fast-path).Stage 2b (следующий PR): 3D
MassingSceneв секцию «7. Концепция» + debounced-хук на этот endpoint → живой пересчёт NPV/IRR при кручении этажности/секций. Refs #1965.