Model/domain/magicplan/models.py
2026-06-05 14:07:28 +00:00

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])