diff --git a/datatypes/epc/domain/epc_property_data.py b/datatypes/epc/domain/epc_property_data.py index e4e89586..d173282d 100644 --- a/datatypes/epc/domain/epc_property_data.py +++ b/datatypes/epc/domain/epc_property_data.py @@ -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