mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-08-03 05:18:22 +00:00
The two new `SapHeating` fields were mapped from the API but dropped by `EpcPostgresRepository._compose`, which the ADR-0036 structural guard caught. Allow-listing them would have been wrong. `PropertyBaselineOrchestrator.run` (applications/modelling_e2e/handler.py:885) always re-derives the persisted baseline from the composed object, so an unpersisted field means the deployed baseline keeps pricing heat-pump DHW as direct electric — the Dovestone cert would still land at SAP 67 even with the mapper fix in place. Several plan paths read the stored EPC too (refetch_epc=False, no lodged cert, stored cert newer, stored survey wins). Round-trip fidelity also matters for churn: `_reconcile_lodged` compares `fetched != stored`, so a field that survives the API mapper but not `_compose` makes that inequality permanently true and re-saves every public cert forever. Needs the matching Drizzle columns in assessment-model before deploy. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| modelling | ||
| __init__.py | ||
| bulk_address_upload_table.py | ||
| condition_tables.py | ||
| config.py | ||
| engine.py | ||
| epc_property_table.py | ||
| landlord_built_form_type_override_table.py | ||
| landlord_construction_age_band_override_table.py | ||
| landlord_glazing_override_table.py | ||
| landlord_main_fuel_override_table.py | ||
| landlord_main_heating_system_override_table.py | ||
| landlord_override_enums.py | ||
| landlord_property_type_override_table.py | ||
| landlord_roof_type_override_table.py | ||
| landlord_wall_type_override_table.py | ||
| landlord_water_heating_override_table.py | ||
| magic_plan_tables.py | ||
| product_table.py | ||
| property_baseline_performance_table.py | ||
| property_details_spatial_table.py | ||
| property_override_table.py | ||
| property_table.py | ||
| solar_table.py | ||
| subtask_table.py | ||
| task_table.py | ||
| uploaded_file_table.py | ||