_build_rows returns structured audit rows from a Plan 🟥

This commit is contained in:
Daniel Roth 2026-05-15 14:45:10 +00:00
parent 1488a60905
commit 0ce0228c31
2 changed files with 38 additions and 0 deletions

View file

@ -0,0 +1,25 @@
from dataclasses import dataclass
from typing import Optional
from datatypes.magicplan.domain.models import Plan
@dataclass
class AuditRow:
floor_level: Optional[int] = None # set only on floor-separator rows
room_name: Optional[str] = None
room_width_m: Optional[float] = None
room_length_m: Optional[float] = None
room_area_m2: Optional[float] = None
window_label: Optional[str] = None
window_location: Optional[str] = None
window_width_m: Optional[float] = None
window_height_m: Optional[float] = None
window_area_m2: Optional[float] = None
window_opening_type: Optional[str] = None
door_location: Optional[str] = None
door_width_mm: Optional[float] = None
def _build_rows(plan: Plan) -> list[AuditRow]:
raise NotImplementedError

View file

@ -0,0 +1,13 @@
from datatypes.magicplan.domain.models import Door, Floor, Plan, Room, Window
from backend.magic_plan.audit_script import AuditRow, _build_rows
def test_build_rows_empty_plan_returns_empty_list() -> None:
# Arrange
plan = Plan(uid="x", name=None, floors=[])
# Act
rows: list[AuditRow] = _build_rows(plan)
# Assert
assert rows == []