diff --git a/backend/condition/domain/element.py b/backend/condition/domain/element.py index b146d09b..72687aed 100644 --- a/backend/condition/domain/element.py +++ b/backend/condition/domain/element.py @@ -18,6 +18,8 @@ class Element(str, Enum): CCU = "ccu" PASSENGER_LIFT = "passenger_lift" STAIRLIFT = "stairlift" + DISABLED_HOIST_TRACKING = "disabled_hoist_tracking" + DISABLED_FACILITIES = "disabled_facilities" # ====================== # EXTERNAL – ROOF @@ -47,6 +49,7 @@ class Element(str, Enum): CLADDING = "cladding" SPANDREL_PANELS = "spandrel_panels" GARAGE_WALLS = "garage_walls" + PARTY_WALL_FIRE_BREAK = "party_wall_fire_break" # ====================== # EXTERNAL – WINDOWS @@ -68,6 +71,7 @@ class Element(str, Enum): BLOCK_ENTRANCE_DOOR = "block_entrance_door" LINTEL = "lintel" PATIO_FRENCH_DOOR = "patio_french_door" + DOOR_ENTRY_HANDSET = "door_entry_handset" # ====================== # EXTERNAL – AREAS @@ -149,6 +153,7 @@ class Element(str, Enum): COMMUNAL_BIN_STORE = "communal_bin_store" COMMUNAL_BIN_STORE_DOORS = "communal_bin_store_doors" COMMUNAL_BIN_STORE_WALLS = "communal_bin_store_wall" + COMMUNAL_BIN_STORE_ROOF = "communal_bin_store_roof" COMMUNAL_REFUSE_CHUTE = "communal_refuse_chute" COMMUNAL_FLOOR_COVERING = "communal_floor_covering" COMMUNAL_KITCHEN = "communal_kitchen" @@ -158,7 +163,7 @@ class Element(str, Enum): COMMUNAL_LIFT = "communal_lift" COMMUNAL_PASSENGER_LIFT = "communal_passenger_lift" COMMUNAL_BALCONY_WALKWAY = "communal_balcony_walkway" - COMMUNAL_PRIMARY_ENTRANCE = "communal_primary_entrance" + COMMUNAL_ENTRANCE = "communal_entrance" COMMUNAL_INTERNAL_DECORATIONS = "communal_internal_decorations" COMMUNAL_INTERNAL_FLOOR = "communal_internal_floor" COMMUNAL_WALKWAYS = "communal_walkways" @@ -166,6 +171,22 @@ class Element(str, Enum): COMMUNAL_STAIRS = "communal_stairs" COMMUNAL_AERIAL = "communal_aerial" COMMUNAL_AOV = "communal_aov" + COMMUNAL_INTERNAL_DOORS = "communal_internal_doors" + COMMUNAL_LATERAL_MAINS = "communal_lateral_mains" + COMMUNAL_LIGHTING = "communal_lighting" + COMMUNAL_LIGHTING_CONDUCTOR = "communal_lighting_conductor" + COMMUNAL_STORE_ROOF = "communal_store_roof" + COMMUNAL_STORE_WALLS = "communal_store_walls" + COMMUNAL_STORE_DOORS = "communal_store_doors" + COMMUNAL_WARDEN_CALL_SYSTEM = "communal_warden_call_system" + COMMUNAL_BMS = "communal_bms" + COMMUNAL_BOOSTER_PUMP = "communal_booster_pump" + COMMUNAL_DRY_RISER = "communal_dry_riser" + COMMUNAL_WET_RISER = "communal_wet_riser" + COMMUNAL_COLD_WATER_STORAGE = "communal_cold_water_storage" + COMMUNAL_SPRINKLER = "communal_sprinkler" + COMMUNAL_PLUG_SOCKETS = "communal_plug_sockets" + COMMUNAL_CIRCULATION_SPACE = "communal_circulation_space" # ========================================================== # HHSRS – ALL 29 HAZARDS diff --git a/backend/condition/domain/mapping/peabody/peabody_element_map.py b/backend/condition/domain/mapping/peabody/peabody_element_map.py index 08e63568..7a266a9f 100644 --- a/backend/condition/domain/mapping/peabody/peabody_element_map.py +++ b/backend/condition/domain/mapping/peabody/peabody_element_map.py @@ -14,6 +14,9 @@ PEABODY_ELEMENT_MAP = { element=Element.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE ), (50, 3): ElementMapping(element=Element.CCU, aspect_type=AspectType.TYPE), + (50, 7): ElementMapping( + element=Element.DISABLED_HOIST_TRACKING, aspect_type=AspectType.PRESENCE + ), (50, 11): ElementMapping( element=Element.HEAT_DETECTION, aspect_type=AspectType.TYPE ), @@ -23,6 +26,9 @@ PEABODY_ELEMENT_MAP = { (50, 22): ElementMapping( element=Element.STAIRLIFT, aspect_type=AspectType.PRESENCE ), + (50, 26): ElementMapping( + element=Element.DISABLED_FACILITIES, aspect_type=AspectType.TYPE + ), (100, 3): ElementMapping(element=Element.PROPERTY, aspect_type=AspectType.AGE_BAND), (100, 14): ElementMapping( element=Element.PROPERTY, aspect_type=AspectType.CONSTRUCTION_TYPE @@ -36,6 +42,9 @@ PEABODY_ELEMENT_MAP = { # ========================================================== # EXTERNAL – WALLS # ========================================================== + (50, 16): ElementMapping( + element=Element.PARTY_WALL_FIRE_BREAK, aspect_type=AspectType.PRESENCE + ), (53, 1): ElementMapping( element=Element.BOUNDARY_WALLS, aspect_type=AspectType.PRESENCE ), @@ -76,6 +85,9 @@ PEABODY_ELEMENT_MAP = { # ========================================================== # EXTERNAL – ROOFS # ========================================================== + (50, 15): ElementMapping( + element=Element.LOFT_INSULATION, aspect_type=AspectType.TYPE + ), (53, 2): ElementMapping(element=Element.CHIMNEY, aspect_type=AspectType.PRESENCE), (53, 6): ElementMapping( element=Element.FASCIA_SOFFIT_BARGEBOARDS, aspect_type=AspectType.MATERIAL @@ -116,6 +128,9 @@ PEABODY_ELEMENT_MAP = { # ========================================================== # EXTERNAL – DOORS & WINDOWS # ========================================================== + (50, 8): ElementMapping( + element=Element.DOOR_ENTRY_HANDSET, aspect_type=AspectType.PRESENCE + ), (53, 8): ElementMapping( element=Element.FRONT_DOOR, aspect_type=AspectType.MATERIAL ), @@ -262,39 +277,121 @@ PEABODY_ELEMENT_MAP = { (51, 3): ElementMapping( element=Element.COMMUNAL_BALCONY_WALKWAY, aspect_type=AspectType.PRESENCE ), + (51, 4): ElementMapping( + element=Element.COMMUNAL_BATHROOM, aspect_type=AspectType.TYPE + ), (51, 5): ElementMapping( element=Element.COMMUNAL_BIN_STORE_DOORS, aspect_type=AspectType.PRESENCE ), + (51, 6): ElementMapping( + element=Element.COMMUNAL_BIN_STORE_ROOF, aspect_type=AspectType.PRESENCE + ), (51, 7): ElementMapping( element=Element.COMMUNAL_BIN_STORE_WALLS, aspect_type=AspectType.MATERIAL ), + (51, 8): ElementMapping( + element=Element.COMMUNAL_BMS, aspect_type=AspectType.PRESENCE + ), + (51, 9): ElementMapping( + element=Element.COMMUNAL_BOILER, aspect_type=AspectType.TYPE + ), + (51, 10): ElementMapping( + element=Element.COMMUNAL_BOOSTER_PUMP, aspect_type=AspectType.PRESENCE + ), + (51, 11): ElementMapping( + element=Element.COMMUNAL_CCTV, aspect_type=AspectType.PRESENCE + ), + (51, 12): ElementMapping( + element=Element.COMMUNAL_CIRCULATION_SPACE, aspect_type=AspectType.ADEQUACY + ), + (51, 13): ElementMapping( + element=Element.COMMUNAL_COLD_WATER_STORAGE, aspect_type=AspectType.PRESENCE + ), (51, 14): ElementMapping( element=Element.COMMUNAL_DOOR_ENTRY, aspect_type=AspectType.SYSTEM ), + (51, 15): ElementMapping( + element=Element.COMMUNAL_DRY_RISER, aspect_type=AspectType.PRESENCE + ), + (51, 16): ElementMapping( + element=Element.COMMUNAL_EMERGENCY_LIGHTING, aspect_type=AspectType.PRESENCE + ), (51, 17): ElementMapping( element=Element.COMMUNAL_EXTERNAL_DOORS, aspect_type=AspectType.MATERIAL ), + (51, 19): ElementMapping( + element=Element.COMMUNAL_FIRE_ALARM, aspect_type=AspectType.TYPE + ), (51, 20): ElementMapping( element=Element.COMMUNAL_INTERNAL_DECORATIONS, aspect_type=AspectType.PRESENCE ), + (51, 21): ElementMapping( + element=Element.COMMUNAL_INTERNAL_DOORS, aspect_type=AspectType.MATERIAL + ), (51, 22): ElementMapping( element=Element.COMMUNAL_INTERNAL_FLOOR, aspect_type=AspectType.FINISH ), + (51, 23): ElementMapping( + element=Element.COMMUNAL_KITCHEN, aspect_type=AspectType.TYPE + ), + (51, 24): ElementMapping( + element=Element.COMMUNAL_LATERAL_MAINS, aspect_type=AspectType.PRESENCE + ), + (51, 25): ElementMapping( + element=Element.COMMUNAL_LIGHTING, aspect_type=AspectType.PRESENCE + ), + (51, 26): ElementMapping( + element=Element.COMMUNAL_LIGHTING_CONDUCTOR, aspect_type=AspectType.PRESENCE + ), (51, 27): ElementMapping( element=Element.COMMUNAL_PASSENGER_LIFT, aspect_type=AspectType.TYPE ), (51, 28): ElementMapping( - element=Element.COMMUNAL_PRIMARY_ENTRANCE, aspect_type=AspectType.MATERIAL + element=Element.COMMUNAL_ENTRANCE, + aspect_type=AspectType.MATERIAL, + element_instance=1, + ), + (51, 30): ElementMapping( + element=Element.COMMUNAL_ENTRANCE, + aspect_type=AspectType.FINISH, + element_instance=2, + ), + (51, 14): ElementMapping( + element=Element.COMMUNAL_SPRINKLER, aspect_type=AspectType.PRESENCE + ), + (51, 29): ElementMapping( + element=Element.COMMUNAL_REFUSE_CHUTE, aspect_type=AspectType.PRESENCE ), (51, 32): ElementMapping( element=Element.COMMUNAL_STAIRS, aspect_type=AspectType.FINISH ), + (51, 33): ElementMapping( + element=Element.COMMUNAL_STORE_DOORS, aspect_type=AspectType.MATERIAL + ), + (51, 34): ElementMapping( + element=Element.COMMUNAL_STORE_ROOF, aspect_type=AspectType.MATERIAL + ), + (51, 35): ElementMapping( + element=Element.COMMUNAL_STORE_WALLS, aspect_type=AspectType.MATERIAL + ), (51, 36): ElementMapping( element=Element.COMMUNAL_WALKWAYS, aspect_type=AspectType.FINISH ), + (51, 37): ElementMapping( + element=Element.COMMUNAL_WARDEN_CALL_SYSTEM, aspect_type=AspectType.PRESENCE + ), + (51, 38): ElementMapping( + element=Element.COMMUNAL_TOILETS, aspect_type=AspectType.TYPE + ), + (51, 39): ElementMapping( + element=Element.COMMUNAL_WET_RISER, aspect_type=AspectType.PRESENCE + ), + (51, 40): ElementMapping( + element=Element.COMMUNAL_PLUG_SOCKETS, aspect_type=AspectType.PRESENCE + ), (200, 1): ElementMapping( element=Element.COMMUNAL_BOILER, aspect_type=AspectType.TYPE - ), + ), # Duplicate of (51, 9) - correct? (200, 2): ElementMapping( element=Element.COMMUNAL_HEATING, aspect_type=AspectType.TYPE ), @@ -315,10 +412,10 @@ PEABODY_ELEMENT_MAP = { ), (200, 8): ElementMapping( element=Element.COMMUNAL_BATHROOM, aspect_type=AspectType.TYPE - ), + ), # Duplicate of (51, 4) - correct? (200, 9): ElementMapping( element=Element.COMMUNAL_TOILETS, aspect_type=AspectType.TYPE - ), + ), # Duplicate of (51, 38) - correct? (200, 10): ElementMapping( element=Element.COMMUNAL_GATES, aspect_type=AspectType.TYPE ), @@ -392,38 +489,3 @@ PEABODY_ELEMENT_MAP = { element=Element.HHSRS_STRUCTURAL_COLLAPSE, aspect_type=AspectType.RISK ), } - - -# unhandled -# 'Element: Communal - Code: 51, Sub-Element: Common Door Entry System - Code: 14', -# 'Element: Communal - Code: 51, Sub-Element: Common Fire Alarm - Code: 19', -# 'Element: Communal - Code: 51, Sub-Element: Common Internal Doors - Code: 21', -# 'Element: Communal - Code: 51, Sub-Element: Common Emergency Lighting - Code: 16', -# 'Element: Communal - Code: 51, Sub-Element: Common Lateral Mains - Code: 24', -# 'Element: Communal - Code: 51, Sub-Element: Common Lighting - Code: 25', -# 'Element: Communal - Code: 51, Sub-Element: Common Store Roof - Code: 34', -# 'Element: Communal - Code: 51, Sub-Element: Common Store Walls - Code: 35', -# 'Element: Communal - Code: 51, Sub-Element: Common CCTV - Code: 11', -# 'Element: Communal - Code: 51, Sub-Element: Common Kitchen - Code: 23', -# 'Element: Communal - Code: 51, Sub-Element: Common Secondary Entrance Material - Code: 30', -# 'Element: Communal - Code: 51, Sub-Element: Common Warden Call System - Code: 37', -# 'Element: Communal - Code: 51, Sub-Element: Common Boiler - Code: 9', -# 'Element: Communal - Code: 51, Sub-Element: Common Store Doors - Code: 33', -# 'Element: Communal - Code: 51, Sub-Element: Common BMS - Code: 8', -# 'Element: Communal - Code: 51, Sub-Element: Common Booster Pump - Code: 10', -# 'Element: Communal - Code: 51, Sub-Element: Common Dry Riser - Code: 15', -# 'Element: Communal - Code: 51, Sub-Element: Common Lightning Conductor - Code: 26', -# 'Element: Communal - Code: 51, Sub-Element: Common Bin Store Roof - Code: 6', -# 'Element: Communal - Code: 51, Sub-Element: Common Bathroom - Code: 4', -# 'Element: Communal - Code: 51, Sub-Element: Common WC - Code: 38', -# 'Element: Communal - Code: 51, Sub-Element: Common Cold Water Storage Tank - Code: 13', -# 'Element: Communal - Code: 51, Sub-Element: Common Sprinker - Code: 31', -# 'Element: Communal - Code: 51, Sub-Element: Communal Plug Sockets - Code: 40', -# 'Element: Communal - Code: 51, Sub-Element: Common Wet Riser - Code: 39', -# 'Element: Communal - Code: 51, Sub-Element: Common Refuse Chute - Code: 29', -# 'Element: Internal - Code: 50, Sub-Element: Party Wall Fire Break - Code: 16', -# 'Element: Communal - Code: 51, Sub-Element: Common Cirulation Space - Code: 12', -# 'Element: Internal - Code: 50, Sub-Element: Door Entry Handset - Code: 8', -# 'Element: Internal - Code: 50, Sub-Element: Loft Insulation - Code: 15', -# 'Element: Internal - Code: 50, Sub-Element: Disabled Hoist Tracking - Code: 7', -# 'Element: Internal - Code: 50, Sub-Element: Disabled Facilities - Code: 26'