extend EpcPropertyData domain model with site-notes-only fields 🟥

This commit is contained in:
Daniel Roth 2026-04-23 14:39:04 +00:00
parent b5b6e4d358
commit 308abd359c

View file

@ -29,12 +29,15 @@ class MainHeatingDetail:
boiler_flue_type: Optional[int] = None # TODO: make enum?
boiler_ignition_type: Optional[int] = None # TODO: make enum?
central_heating_pump_age: Optional[int] = None
central_heating_pump_age_str: Optional[str] = None # str from site notes e.g. "Unknown", "Pre 2013"
main_heating_index_number: Optional[int] = None
sap_main_heating_code: Optional[int] = None # TODO: make enum?
main_heating_number: Optional[int] = None
main_heating_category: Optional[int] = None
main_heating_fraction: Optional[int] = None
main_heating_data_source: Optional[int] = None
condensing: Optional[bool] = None
weather_compensator: Optional[bool] = None
@dataclass
@ -68,6 +71,21 @@ class SapHeating:
cylinder_insulation_thickness_mm: Optional[int] = None
@dataclass
class SapVentilation:
ventilation_type: Optional[str] = None
draught_lobby: Optional[bool] = None
pressure_test: Optional[str] = None # str from site notes e.g. "No test"; int in API via mechanical_ventilation
open_flues_count: Optional[int] = None
closed_flues_count: Optional[int] = None
boiler_flues_count: Optional[int] = None
other_flues_count: Optional[int] = None
extract_fans_count: Optional[int] = None
passive_vents_count: Optional[int] = None
flueless_gas_fires_count: Optional[int] = None
ventilation_in_pcdf_database: Optional[bool] = None
@dataclass
class WindowTransmissionDetails:
u_value: float
@ -200,6 +218,10 @@ class SapBuildingPart:
flat_roof_insulation_thickness: Optional[Union[str, int]] = (
None # TODO: make enum/mapping?
)
floor_type: Optional[str] = None # str from site notes e.g. "Ground Floor"
floor_construction_type: Optional[str] = None # str from site notes; distinct from floor_construction: int in SapFloorDimension
floor_insulation_type_str: Optional[str] = None # str from site notes e.g. "As Built"
floor_u_value_known: Optional[bool] = None
roof_construction: Optional[int] = None
roof_insulation_location: Optional[Union[int, str]] = (
@ -347,3 +369,10 @@ class EpcPropertyData:
# survey_addendum: Optional[Any] = None # not sure how to handle, skip for now
fixed_lighting_outlets_count: Optional[int] = None
low_energy_fixed_lighting_outlets_count: Optional[int] = None
# Site-notes-only fields
sap_ventilation: Optional[SapVentilation] = None
number_of_storeys: Optional[int] = None
any_unheated_rooms: Optional[bool] = None
waste_water_heat_recovery: Optional[str] = None
hydro: Optional[bool] = None
photovoltaic_array: Optional[bool] = None