mirror of
https://github.com/Hestia-Homes/survey-extraction.git
synced 2026-06-08 11:17:29 +00:00
bathrooms
This commit is contained in:
parent
7f204e328c
commit
95cc1821c7
4 changed files with 241 additions and 14 deletions
|
|
@ -149,4 +149,50 @@ class Hallway(BaseModel, table=True):
|
|||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
|
||||
class LivingRoom(BaseModel, table=True):
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
class DiningRoom(BaseModel, table=True):
|
||||
is_there_a_dining_room: bool
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
class Kitchen(BaseModel, table=True):
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
is_there_a_cooker_hood_present_in_the_room: bool
|
||||
|
||||
class Utility(BaseModel, table=True):
|
||||
is_there_a_utility_room: bool
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
class WC(BaseModel, table=True):
|
||||
is_there_a_seperated_wc: bool
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
class Landing(BaseModel, table=True):
|
||||
is_there_a_landing: bool
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
class LoftSpace(BaseModel, table=True):
|
||||
is_the_main_loft_space_accessible: str
|
||||
is_there_more_than_one_loft_space: bool
|
||||
|
||||
class RoomInRoof(BaseModel, table=True):
|
||||
is_there_a_room_in_roof: bool
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
class Bedroom(BaseModel, table=True):
|
||||
double_or_single_bedroom: str
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
||||
class Bathroom(BaseModel, table=True):
|
||||
is_this_an_ensuite_bathroom: bool
|
||||
room_info_id: Optional[uuid.UUID] = Field(foreign_key="roominfo.id")
|
||||
room_info: Optional[RoomInfo] = Relationship()
|
||||
|
|
@ -30,7 +30,17 @@ from etl.models.conditionReport import (
|
|||
Hallway,
|
||||
VentilationInfo,
|
||||
WindowsInfo,
|
||||
RoomInfo
|
||||
RoomInfo,
|
||||
LivingRoom,
|
||||
DiningRoom,
|
||||
Kitchen,
|
||||
Utility,
|
||||
WC,
|
||||
Landing,
|
||||
LoftSpace,
|
||||
RoomInRoof,
|
||||
Bedroom,
|
||||
Bathroom
|
||||
)
|
||||
|
||||
from etl.models.topLevel import(
|
||||
|
|
@ -115,6 +125,177 @@ class surveyedDataProcessor():
|
|||
|
||||
def load_rooms_from_condition_report(self, db_session):
|
||||
self.load_hallway_from_condition_report(db_session)
|
||||
self.load_living_room_from_condition_report(db_session)
|
||||
self.load_dining_room_from_condition_report(db_session)
|
||||
self.load_kitchen_from_condition_report(db_session)
|
||||
self.load_utility_room_from_condition_report(db_session)
|
||||
self.load_wash_chamber_from_condition_report(db_session)
|
||||
self.load_landing_from_condition_report(db_session)
|
||||
self.load_loft_space_from_condition_report(db_session)
|
||||
self.load_room_in_roof_from_condition_report(db_session)
|
||||
self.load_bedrooms_from_condition_report(db_session)
|
||||
self.load_bathrooms_from_condition_report(db_session)
|
||||
|
||||
def load_bathrooms_from_condition_report(self, db_session):
|
||||
bathroom_ids = []
|
||||
for i, bathrooms in enumerate(self.condition_report.master_obj.rooms.bathrooms):
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.bathrooms[i]
|
||||
)
|
||||
bathroom = self.upsert_record(
|
||||
db_session=db_session,
|
||||
model_class=Bathroom,
|
||||
data_dict=bathrooms.model_dump(),
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id,
|
||||
}
|
||||
)
|
||||
bathroom_ids.append(bathroom.id)
|
||||
return bathroom_ids
|
||||
|
||||
def load_bedrooms_from_condition_report(self, db_session):
|
||||
bedroom_ids = []
|
||||
for i, bedrooms in enumerate(self.condition_report.master_obj.rooms.bedrooms):
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
bedrooms
|
||||
)
|
||||
bedroom = self.upsert_record(
|
||||
db_session=db_session,
|
||||
model_class=Bedroom,
|
||||
data_dict=bedrooms.model_dump(),
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id,
|
||||
}
|
||||
)
|
||||
bedroom_ids.append(bedroom.id)
|
||||
return bedroom_ids
|
||||
|
||||
def load_room_in_roof_from_condition_report(self, db_session):
|
||||
room_info = None
|
||||
if self.condition_report.master_obj.rooms.room_in_roof.is_there_a_room_in_roof:
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.room_in_roof,
|
||||
)
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"room_in_roof",
|
||||
RoomInRoof,
|
||||
db_session,
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id if room_info else None,
|
||||
}
|
||||
)
|
||||
|
||||
def load_landing_from_condition_report(self, db_session):
|
||||
room_info = None
|
||||
if self.condition_report.master_obj.rooms.landing.is_there_a_landing:
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.landing,
|
||||
)
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"landing",
|
||||
Landing,
|
||||
db_session,
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id if room_info else None,
|
||||
}
|
||||
)
|
||||
|
||||
def load_loft_space_from_condition_report(self, db_session):
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"loft_space",
|
||||
LoftSpace,
|
||||
db_session,
|
||||
)
|
||||
|
||||
def load_wash_chamber_from_condition_report(self, db_session):
|
||||
room_info = None
|
||||
if self.condition_report.master_obj.rooms.wash_chamber.is_there_a_seperated_wc:
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.wash_chamber,
|
||||
)
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"wash_chamber",
|
||||
WC,
|
||||
db_session,
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id if room_info else None,
|
||||
}
|
||||
)
|
||||
|
||||
def load_utility_room_from_condition_report(self, db_session):
|
||||
room_info = None
|
||||
if self.condition_report.master_obj.rooms.utility.is_there_a_utility_room:
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.utility
|
||||
)
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"utility",
|
||||
Utility,
|
||||
db_session,
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id if room_info else None,
|
||||
}
|
||||
)
|
||||
|
||||
def load_kitchen_from_condition_report(self, db_session):
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.kitchen,
|
||||
)
|
||||
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"kitchen",
|
||||
pydanticModel=Kitchen,
|
||||
db_session=db_session,
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id if room_info else None,
|
||||
}
|
||||
)
|
||||
|
||||
def load_dining_room_from_condition_report(self, db_session):
|
||||
room_info = None
|
||||
if self.condition_report.master_obj.rooms.dining_room.is_there_a_dining_room:
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.dining_room
|
||||
)
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"dining_room",
|
||||
pydanticModel=DiningRoom,
|
||||
db_session=db_session,
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id if room_info else None,
|
||||
}
|
||||
)
|
||||
|
||||
def load_living_room_from_condition_report(self, db_session):
|
||||
room_info = self.load_room_info_from_condition_report(
|
||||
db_session,
|
||||
self.condition_report.master_obj.rooms.living_room,
|
||||
)
|
||||
|
||||
return self.get_attribute_and_load(
|
||||
self.condition_report.master_obj.rooms,
|
||||
"living_room",
|
||||
pydanticModel=LivingRoom,
|
||||
db_session=db_session,
|
||||
additional_fields={
|
||||
"room_info_id": room_info.id if room_info else None,
|
||||
}
|
||||
)
|
||||
|
||||
def load_hallway_from_condition_report(self, db_session):
|
||||
room_info = None
|
||||
|
|
|
|||
|
|
@ -153,17 +153,17 @@ class RoomInRoof(BaseModel):
|
|||
room_info: Optional[RoomInfo]
|
||||
|
||||
class Rooms(BaseModel):
|
||||
hallway: Hallway
|
||||
living_room: LivingRoom
|
||||
dining_room: DiningRoom
|
||||
kitchen: Kitchen
|
||||
utility: Utility
|
||||
wash_chamber: WC
|
||||
landing: Landing
|
||||
bedrooms: List[Bedroom]
|
||||
bathrooms: List[Bathroom]
|
||||
loft_space: LoftSpace
|
||||
room_in_roof: RoomInRoof
|
||||
hallway: Hallway #loaded
|
||||
living_room: LivingRoom # loaded
|
||||
dining_room: DiningRoom # loaded
|
||||
kitchen: Kitchen # loaded
|
||||
utility: Utility # loaded
|
||||
wash_chamber: WC # loaded
|
||||
landing: Landing # loadded
|
||||
loft_space: LoftSpace #loaded
|
||||
room_in_roof: RoomInRoof # loaded
|
||||
bedrooms: List[Bedroom] # loaded
|
||||
bathrooms: List[Bathroom] # loaded
|
||||
|
||||
class GeneralConditionHeatingSystem(BaseModel):
|
||||
is_the_heating_system_in_working_order: bool
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#poetry run alembic revision --autogenerate -m "add column in ventilation info"
|
||||
#poetry run alembic revision --autogenerate -m "add utility"
|
||||
|
||||
poetry run alembic upgrade head
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue