From 069e6693aedb947708909fe259cab6fa59deaf50 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Wed, 6 May 2026 17:03:49 +0000 Subject: [PATCH] =?UTF-8?q?include=20address=20and=20postcode=20on=20magic?= =?UTF-8?q?plan=20plan=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- datatypes/magicplan/domain/mapper.py | 14 ++++++++++++++ datatypes/magicplan/domain/models.py | 2 ++ 2 files changed, 16 insertions(+) diff --git a/datatypes/magicplan/domain/mapper.py b/datatypes/magicplan/domain/mapper.py index 353a53c8..f00c6780 100644 --- a/datatypes/magicplan/domain/mapper.py +++ b/datatypes/magicplan/domain/mapper.py @@ -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, diff --git a/datatypes/magicplan/domain/models.py b/datatypes/magicplan/domain/models.py index 2a8625f3..4dda8859 100644 --- a/datatypes/magicplan/domain/models.py +++ b/datatypes/magicplan/domain/models.py @@ -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])