From 947dcd1364a7ce99b7383eabcffc521163273772 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Mon, 2 Jun 2025 13:07:58 +0000 Subject: [PATCH] save types --- etl/pdfReader/sitenotes.py | 2 +- etl/transform/conditionReportTypes.py | 70 ++++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/etl/pdfReader/sitenotes.py b/etl/pdfReader/sitenotes.py index 6bec6cc..dde575e 100644 --- a/etl/pdfReader/sitenotes.py +++ b/etl/pdfReader/sitenotes.py @@ -73,7 +73,7 @@ class ConditionReport(SiteNotesExtractor): def setup(self): self.get_property_reference_code() - def property_reference_code(self): + def get_property_reference_code(self): print("hello world") diff --git a/etl/transform/conditionReportTypes.py b/etl/transform/conditionReportTypes.py index dbe4d43..c7dc883 100644 --- a/etl/transform/conditionReportTypes.py +++ b/etl/transform/conditionReportTypes.py @@ -1,14 +1,71 @@ -from etl.transform.preSiteNoteTypes import BaseModel +from etl.transform.preSiteNoteTypes import BaseModel, Optional class ConditionReport(BaseModel): property_reference_code: str +class HeatingSystemGeneralCondition(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 + +class Heating(BaseModel): + as_define_by: str + fuel: str + +class MainHeating1(BaseModel): + heatingDetail: Heating + +class SecondaryHeating(BaseModel): + is_there_a_secondary_heating: bool + heatingDetail: Heating + +class HeatingByRoom(BaseModel): + rooms_heated_by_main_system_1: str + rooms_heated_by_secondary_heating: str + partially_heated_rooms: str + unheated_rooms: str + which_other_rooms: Optional[str] + +class Renewable(BaseModel): + is_there_any_renewable_energy_system_in_place: bool + suitable_roof_orientation_for_solar_pv_water: str + +class HeatingSystem(BaseModel): + general_condition: HeatingSystemGeneralCondition + main_heating_1: MainHeating1 + secondary_heating: SecondaryHeating + heating_by_room: HeatingByRoom + renewable: Renewable + + +class Occupants(BaseModel): + total_number_of_occupants: int + number_of_adult_occupants: int + number_of_child_occupants: int + are_there_vulnerable_people: bool + anyone_with_disability: bool + name_of_occupant: str + status_of_occupant: str + landlord_has_written_confirmation_that_the_tenent_agrees_to_the_assessment_been_supplied: bool + +class EnergyUse(BaseModel): + property_tenure: str + electricity_bill_payer: str + +class OccupantHeating(BaseModel): + room_stat_temperture_in_celsius: float + root_stat_location: str + is_heating_pattern_known: bool + heating_pattern: str + number_of_alternative_days: int class ShowerAndBath(BaseModel): do_you_know_the_number_of_showers_per_day_or_per_week: str do_you_know_the_number_of_baths_per_day_or_per_week: str - number_of_showers: str + shower_type: str + per_day_or_per_week: str class Appliances(BaseModel): no_of_fridges: int @@ -22,6 +79,15 @@ class Appliances(BaseModel): space_for_outdoor_drying: bool evidence_of_twelve_months_of_fuel_bill_data: bool +class OccupancyAssessment(BaseModel): + occupants: Occupants + energy_use: EnergyUse + heating: OccupantHeating + shower_and_bath: ShowerAndBath + appliances: Appliances + + + class VentilationChecklist(BaseModel): intermittent_extract_ventilation: bool