diff --git a/etl/condition_report_etl.py b/etl/condition_report_etl.py index 47c7af4..bfc0cd3 100644 --- a/etl/condition_report_etl.py +++ b/etl/condition_report_etl.py @@ -1,4 +1,3 @@ from etl.surveyedData.surveryedData import surveyedDataProcessor - condition_report_file_path = "/workspaces/survey-extractor/etl/files/osmosis_condition_report.pdf" sdp = surveyedDataProcessor("123 Fake Street", [condition_report_file_path]) diff --git a/etl/transform/conditionReportTypes.py b/etl/transform/conditionReportTypes.py index 0019933..734c8ac 100644 --- a/etl/transform/conditionReportTypes.py +++ b/etl/transform/conditionReportTypes.py @@ -1,6 +1,77 @@ from etl.transform.preSiteNoteTypes import BaseModel, Optional, List +class WC(BaseModel): + is_there_a_seperated_wc: bool + +class Landing(BaseModel): + is_there_a_landing: bool + +class Bedroom(BaseModel): + double_or_single_bedroom: str + overall_condition_of_the_room: str + are_there_any_sloped_ceiling_areas: bool + does_the_room_have_any_defects: bool + does_the_room_have_any_windows: bool + condition_of_the_windows: str + does_the_windows_have_trickle_vents: bool + input_trickle_vent_product_code_located_on_the_trickle_vent_or_trickle_vent_measurment: int + are_the_windows_openable: bool + is_there_a_ventilation_system_present_in_the_room: bool + are_there_any_visible_or_reported_signs_of_damp_mould_or_excessive_condensation_within_the_room: bool + are_there_sufficient_undercuts_on_the_closed_door: bool + is_there_any_open_flue_heating_appliances_within_the_room: bool + + +class Bathroom(BaseModel): + is_this_an_ensuit_bathroom: bool + overall_condition_of_the_room: str + does_the_room_have_any_defects: bool + does_the_room_have_any_windows: bool + is_there_a_ventilation_system_present_in_the_room: str + is_the_ventilation_system_in_good_working_order: bool + extraction_ventilation_rate_measured: float + are_there_any_visible_or_reported_signs_of_damp_mould_or_excessive_condensation_within_the_room: bool + are_there_sufficient_undercuts_on_the_closed_door: bool + is_there_any_open_flue_heating_appliances_within_the_room: bool + +class LoftSpace(BaseModel): + is_the_main_loft_space_accessible: str + is_there_more_than_one_loft_space: bool + +class RoomInRoof(BaseModel): + is_there_a_room_in_roof: bool + +class GeneralConditionHeatingSystem(BaseModel): + is_the_heating_system_in_working_order: bool + does_the_occupant_have_a_smart_meter: bool + are_there_any_smart_monitoring_devices: bool + are_the_gas_and_electricity_meters_accessible: bool + further_notes: str + + +class SecondaryHeating(BaseModel): + is_there_a_secondary_heating: bool + fuel: str + type: str + + +class MainHeatingOne(BaseModel): + as_defined_by: str + fuel: str + type: str + +class MainHeatingTwo(BaseModel): + is_there_a_main_heating_two: bool + +class HeatingByRoom(BaseModel): + rooms_heated_by_main_system_one: str + rooms_heated_by_main_system_two: str + rooms_heated_by_secondary_heating: str + are_there_any_partially_heated_rooms: str + are_there_any_unheated_rooms: bool + unheated_rooms: str + class Renewables(BaseModel): is_there_any_renewable_energy_system_in_place: bool suitable_roof_orientation_for_solar_pv_water: str @@ -10,7 +81,16 @@ class Renewables(BaseModel): tank_location: str is_the_tank_insulated: bool type_of_insulation: str - + thickness_of_insulation_in_mm: int + +class HeatingSystem(BaseModel): + general_condition: GeneralConditionHeatingSystem + main_heating_one: MainHeatingOne + main_heating_two: MainHeatingTwo + secondary_heating: SecondaryHeating + heating_by_room: HeatingByRoom + renewables: Renewables + class Occupant(BaseModel): name: str