mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
58 lines
1.2 KiB
Python
58 lines
1.2 KiB
Python
from dataclasses import dataclass, field
|
|
from typing import Optional
|
|
|
|
|
|
@dataclass
|
|
class WindowVentilation:
|
|
opening_type: Optional[str] = None
|
|
num_openings: Optional[int] = None
|
|
pct_openable: Optional[int] = None
|
|
trickle_vent_area_mm2: Optional[int] = None
|
|
num_trickle_vents: Optional[int] = None
|
|
|
|
|
|
@dataclass
|
|
class DoorVentilation:
|
|
undercut_mm: Optional[float] = None
|
|
|
|
|
|
@dataclass
|
|
class Window:
|
|
width_m: float
|
|
height_m: float
|
|
area_m2: float
|
|
opening_type: str
|
|
ventilation: Optional[WindowVentilation] = None
|
|
|
|
|
|
@dataclass
|
|
class Door:
|
|
width_mm: float
|
|
height_mm: float
|
|
ventilation: Optional[DoorVentilation] = None
|
|
|
|
|
|
@dataclass
|
|
class Room:
|
|
name: str
|
|
width_m: float
|
|
length_m: float
|
|
area_m2: float
|
|
windows: list[Window] = field(default_factory=list[Window])
|
|
doors: list[Door] = field(default_factory=list[Door])
|
|
|
|
|
|
@dataclass
|
|
class Floor:
|
|
level: int | None
|
|
name: str | None
|
|
rooms: list[Room] = field(default_factory=list[Room])
|
|
|
|
|
|
@dataclass
|
|
class Plan:
|
|
uid: str
|
|
name: str | None
|
|
address: str | None = None
|
|
postcode: str | None = None
|
|
floors: list[Floor] = field(default_factory=list[Floor])
|