mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-07-12 13:29:04 +00:00
Roof dispatcher docstring and constants reflect the sentinel-aware pitched trigger 🟪
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
1d13dee38e
commit
63c889bd02
1 changed files with 7 additions and 8 deletions
|
|
@ -1,13 +1,15 @@
|
|||
"""The roof Recommendation Generator.
|
||||
|
||||
Dispatches the MAIN roof to its single applicable insulation Measure by roof
|
||||
type (ADR-0021): a sloping ceiling (rafters, 100 mm), or — the fallback — a
|
||||
loft / thatched / unlodged pitched roof (joists, 300 mm); a no-access roof gets
|
||||
nothing. Each emits one "Roof" Recommendation whose Option carries the
|
||||
type (ADR-0021): a sloping or vaulted ceiling (rafters, 100 mm), a flat roof
|
||||
(200 mm), or — the fallback — a loft / thatched / unlodged pitched roof
|
||||
(joists, 300 mm); a no-access roof gets nothing. The pitched branches resolve
|
||||
a lodged sentinel thickness ("ND" / nothing) to the age band's as-built state
|
||||
(ADR-0047). Each emits one "Roof" Recommendation whose Option carries the
|
||||
insulation Simulation Overlay (raising `roof_insulation_thickness`) and a priced
|
||||
Cost (roof area x the Product's fully-loaded unit cost, with its contingency).
|
||||
Flat-roof and room-in-roof branches land in later slices. No scoring, no
|
||||
persistence — impact is produced later by scoring (ADR-0016).
|
||||
The room-in-roof branch lands in a later slice. No scoring, no persistence —
|
||||
impact is produced later by scoring (ADR-0016).
|
||||
"""
|
||||
|
||||
from typing import Final, Optional, Union
|
||||
|
|
@ -24,9 +26,6 @@ from repositories.product.product_repository import ProductRepository
|
|||
|
||||
_LOFT_MEASURE_TYPE = MeasureType.LOFT_INSULATION
|
||||
_SLOPING_CEILING_MEASURE_TYPE = MeasureType.SLOPING_CEILING_INSULATION
|
||||
# RdSAP 10 Table 16: 0 mm lodged roof insulation is an uninsulated loft. The
|
||||
# Elmhurst mapper resolves "As Built" to 0 for pitched/sloping/loft roofs.
|
||||
_ROOF_UNINSULATED_MM = 0
|
||||
# Recommended loft-insulation depth (mm). Elmhurst re-lodges a loft-insulation
|
||||
# measure at 300 mm; pinning the before→after cascade (000490/001431) requires
|
||||
# the overlay to match that depth exactly (see test_elmhurst_cascade_pins).
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue