mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
Relocate EpcPropertyModel + child tables from the dying backend/ tree to
infrastructure/postgres/epc_property_table.py (re-export shim keeps
documents_parser working). Add EpcRepository port + EpcPostgresRepository with
a full reverse mapper (epc_property tables -> EpcPropertyData).
Round-trip test surfaced two fidelity gaps:
1. Union[int,str] SAP code fields were str()-coerced on save, losing the int
(API) vs str (Site Notes) distinction. Now stored as JSONB (type-preserving).
2. The schema was a partial projection. Closed the cheap gaps on the model
(heating shower/bath counts, roof_construction_type, curtain_wall_age,
addendum, mechanical_vent_duct_insulation_level, SAP 10.2 §2 ventilation
fields + a ventilation_present flag). Structural gaps tracked as follow-ups;
renewable_heat_incentive (P0, #1137) excluded from the assertion until landed.
Round-trip passes for RdSAP-Schema-21.0.0 and 21.0.1; pyright strict clean.
Migration inventory for the DB: docs/migrations/epc-property-round-trip-fidelity.md
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| tests | ||
| addresses.py | ||
| bulk_address_uploads.py | ||
| condition.py | ||
| energy_assessments.py | ||
| epc.py | ||
| epc_property.py | ||
| funding.py | ||
| hubspot_deal_data.py | ||
| hubspot_project_data.py | ||
| hubspot_user.py | ||
| inspections.py | ||
| magic_plan.py | ||
| materials.py | ||
| non_intrusive_surveys.py | ||
| organisation.py | ||
| portfolio.py | ||
| postcode_search.py | ||
| recommendations.py | ||
| solar.py | ||
| tasks.py | ||
| uploaded_file.py | ||
| users.py | ||
| whlg.py | ||