Model/tests/repositories
Khalim Conn-Kowlessar 0890b59b56 Persist alternative-wall u_value / thickness / is_basement 🟩
SapAlternativeWall.u_value (heat_transmission.py:1616), .wall_thickness_mm
(:1645) and .is_basement (:1618) were read by the calculator but had no column,
so they dropped on save. Latent today (0 gov-API certs lodge them — live only on
the Elmhurst/site-notes path), but is_basement is the nastiest shape: it does not
null out, it FLIPS meaning (True -> None -> is_basement_wall reads False),
silently switching off the RdSAP §5.17 / Table 23 basement-wall U path.

Add alt_wall_{1,2}_{u_value,thickness_mm,is_basement} to EpcBuildingPartModel,
write in from_domain, reconstruct in _to_alt_wall, and drop the three
_UNPERSISTED_ALLOWLIST entries so the structural guard enforces them. is_basement
is nullable (None "not stated" != False "not a basement"; a NOT NULL DEFAULT
false re-enables the code-6 heuristic — same reasoning as #1661's wall_is_basement).

Companion assessment-model migration: six nullable columns on epc_building_part
(deploy gate). Round-trip + field-coverage guard green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 08:31:43 +00:00
..
comparable_properties Widen EPC-prediction cohort search one step when the normal radius is too sparse 2026-07-08 14:29:21 +00:00
epc Persist alternative-wall u_value / thickness / is_basement 🟩 2026-07-23 08:31:43 +00:00
fuel_rates Load the off-peak day/night rate from the committed snapshot 🟩 2026-06-24 17:20:19 +00:00
geospatial feat(geospatial): batch coordinates_for_uprns lookup (#1227) 2026-06-15 14:35:32 +00:00
historic_epc Carry the EPC certificate number through address2uprn to property 2026-07-07 13:26:49 +00:00
hubspot_deals The deal row names the job number client_booking_reference, matching HubSpot and the schema 🟪 2026-07-07 12:43:40 +00:00
landlord_overrides Group landlord property-override enums under domain/epc/property_overrides 🟪 2026-06-19 14:49:58 +00:00
magic_plan get_plan_by_uploaded_file_id 🟩 2026-06-08 15:37:52 +00:00
plan A new default plan demotes the prior default across scenarios 🟥 2026-07-07 16:41:48 +00:00
product Hold one DB connection per modelling_e2e invocation 2026-06-24 16:58:21 +00:00
property Fetch a property's lodged EPC by UPRN, not property_id 2026-07-14 10:35:51 +00:00
property_baseline Round-trip a null Lodged Performance through persistence 🟩 2026-06-30 22:13:04 +00:00
scenario Scenario carries its Fabric First flag from the scenario table 🟥 2026-07-09 11:44:31 +00:00
solar perf(modelling_e2e): bulk reads and batch writes to cut RDS load 2026-06-24 18:43:42 +00:00
spatial feat(spatial): per-UPRN cache repo for the OS spatial reference 2026-06-04 17:15:51 +00:00
tasks perf(modelling_e2e): batch SubTask bookkeeping to stop per-property writes 2026-06-24 19:26:42 +00:00
unstandardised_address updated rdsap option; seperated s3 location in infrastrucutre; added open ai api 2026-05-22 14:00:33 +00:00
uploaded_file Bulk download: match uploaded_files via hubspot_deal_id bridge + add worker observability 2026-07-08 13:58:46 +00:00
__init__.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
test_unit_of_work.py Fetch a property's lodged EPC by UPRN, not property_id 2026-07-14 10:35:51 +00:00