include address and postcode on magicplan plan 🟩

This commit is contained in:
Daniel Roth 2026-05-06 17:03:49 +00:00
parent 3b9d40f2f8
commit 069e6693ae
2 changed files with 16 additions and 0 deletions

View file

@ -7,10 +7,24 @@ def map_plan(mp: MagicPlan) -> Plan:
return Plan(
uid=mp.plan.id,
name=mp.plan.name,
address=_map_address(mp.plan.address),
postcode=mp.plan.address.postal_code if mp.plan.address else None,
floors=[_map_floor(f) for f in mp.plan_detail.plan.floors],
)
def _map_address(addr: api.Address | None) -> str | None:
if addr is None:
return None
street = (
f"{addr.street_number} {addr.street}".strip()
if addr.street_number
else addr.street
)
parts = [p for p in [street, addr.city, addr.country] if p]
return ", ".join(parts) if parts else None
def _map_floor(f: api.Floor) -> Floor:
return Floor(
level=f.level,

View file

@ -35,4 +35,6 @@ class Floor:
class Plan:
uid: str
name: str | None
address: str | None = None
postcode: str | None = None
floors: list[Floor] = field(default_factory=list[Floor])