From 94917dd7956056b7348765865277fdf59622e143 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Mon, 2 Jun 2025 14:23:35 +0000 Subject: [PATCH] added more types --- etl/transform/conditionReportTypes.py | 125 +++++++++++++++++++++++++- 1 file changed, 121 insertions(+), 4 deletions(-) diff --git a/etl/transform/conditionReportTypes.py b/etl/transform/conditionReportTypes.py index c7dc883..358ceae 100644 --- a/etl/transform/conditionReportTypes.py +++ b/etl/transform/conditionReportTypes.py @@ -1,8 +1,128 @@ -from etl.transform.preSiteNoteTypes import BaseModel, Optional +from etl.transform.preSiteNoteTypes import BaseModel, Optional, List class ConditionReport(BaseModel): property_reference_code: str +class GeneralInformation(BaseModel): + pass + +class PropertyAccess(BaseModel): + are_there_any_road_restrictions_in_the_locality: bool + is_on_street_parking_avalible: bool + is_the_access_gated: bool + is_there_restricted_space_for_contractors_to_access_the_wall_area: bool + is_there_restrcited_space_for_contractors_to_access_the_roof_area: bool + is_there_more_than_2_dot_5_mm_in_width_to_fence_or_neighbouring_boundary_along_the_full_gable_elevation: bool + is_access_to_the_rear_provided_by_use_of_a_ginnel: bool + is_access_to_the_rear_provided_by_use_of_a_secured_alleway: bool + +class ExternalElevationGableOne(BaseModel): + do_all_answers_for_the_front_elevation_also_apply_to_this_wall: bool + +class ExternalElevationGableTwo(BaseModel): + is_there_a_fourth_external_elevation: bool + +class ExternalElevationRear(BaseModel): + do_all_answers_for_the_front_elevation_also_apply_to_this_wall: bool + +class ExternalElevationFront(BaseModel): + general_condition_of_the_elevation: str + are_there_any_visible_signs_of_existing_wall_insulation: str + are_there_any_signs_of_water_penetration_caused_by_failed_rainwater_goods_or_pipework: bool + are_there_any_visible_signs_of_movement: str + are_there_any_visible_signs_of_cracking_to_the_existing_external_finish: bool + +class ConservatoryOrOutbuilding(BaseModel): + is_there_a_conservatory_and_or_outbuilding: bool + +class ExternalElevations(BaseModel): + front: ExternalElevationFront + rear: ExternalElevationRear + gable_one: ExternalElevationGableOne + gable_two: ExternalElevationGableTwo + +class AccessAndElevations(BaseModel): + property_access: PropertyAccess + conservatory_and_or_outbuilding: ConservatoryOrOutbuilding + external_elevations: ExternalElevations + +class RoomDetail(BaseModel): + overall_condition_of_the_room: str + does_the_room_have_any_defects: str + does_the_room_have_any_windows: bool + condition_of_windows: Optional[str] + are_the_windows_openable: Optional[bool] + do_the_windows_have_trickle_vents: Optional[bool] + is_there_ventilation_system_present_in_the_room: str + is_the_ventilation_system_in_good_working_order: Optional[str] + extract_ventilation_rate_measured: Optional[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 + +class Conservatory(BaseModel): + is_there_a_conservatory_and_or_outbuilding: bool + +class Hallway(BaseModel): + is_there_a_hallway: bool + room_detail: RoomDetail + +class LivingRoom(BaseModel): + room_detail: RoomDetail + +class DiningRoom(BaseModel): + is_there_a_dining_room: bool + room_detail: RoomDetail + +class Kitchen(BaseModel): + room_detail: RoomDetail + +class WC(BaseModel): + is_there_a_seperated_wc: bool + room_detail: RoomDetail + +class Utilty(BaseModel): + is_there_a_utility_room: bool + room_detail: RoomDetail + +class Landing(BaseModel): + room_detail: RoomDetail + is_there_a_landing: bool + +class Bathroom(BaseModel): + is_this_an_ensuite_bathroom: bool + room_detail: RoomDetail + +class Bedroom(BaseModel): + room_detail: RoomDetail + double_or_single_bedroom: str + +class LoftSpace(BaseModel): + is_the_loft_space_accessible: bool + overall_condition_of_the_loft_space: str + does_the_loft_space_have_any_defects: bool + existing_depth_of_loft_insulation: str + is_the_insulation_layer_even_across_the_loft: bool + is_the_loft_boarded_in_any_area: bool + boarded_m2_area: Optional[float] + condition_of_existing_roof_lining: str + is_there_an_existing_heating_system_or_plumbing_located_in_the_loft: bool + +class RoomInRoof(BaseModel): + is_there_a_room_in_roof: bool + +class Rooms(BaseModel): + hallway: Hallway + living_room: LivingRoom + dining_room: DiningRoom + kitchen: Kitchen + utility: Utilty + WC: WC + landing: Landing + Bathroom: List[Bathroom] + Bedroom: List[Bedroom] + loft_space: LoftSpace + room_in_roof: RoomInRoof + class HeatingSystemGeneralCondition(BaseModel): is_the_heating_system_in_working_order: bool does_the_occupant_have_a_smart_meter: bool @@ -86,9 +206,6 @@ class OccupancyAssessment(BaseModel): shower_and_bath: ShowerAndBath appliances: Appliances - - - class VentilationChecklist(BaseModel): intermittent_extract_ventilation: bool continous_mechanical_extract_ventilation: bool