from backend.condition.domain.aspect_type import AspectType from backend.condition.domain.element_type import ElementType from backend.condition.domain.mapping.element_mapping import ElementMapping PEABODY_ELEMENT_MAP = { # ========================================================== # PROPERTY / GENERAL # ========================================================== (100, 1): ElementMapping( elementType=ElementType.PROPERTY, aspect_type=AspectType.TYPE, ), # (100, 3): ElementMapping(element=Element.PROPERTY, aspect_type=AspectType.AGE), # (100, 14): ElementMapping(element="property", aspect_type="construction_type"), (50, 2): ElementMapping( elementType=ElementType.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE, ), (50, 3): ElementMapping( elementType=ElementType.CCU, aspect_type=AspectType.TYPE, ), (50, 7): ElementMapping( elementType=ElementType.DISABLED_HOIST_TRACKING, aspect_type=AspectType.PRESENCE, ), (50, 11): ElementMapping( elementType=ElementType.HEAT_DETECTION, aspect_type=AspectType.TYPE, ), (50, 21): ElementMapping( elementType=ElementType.SMOKE_DETECTION, aspect_type=AspectType.TYPE, ), (50, 22): ElementMapping( elementType=ElementType.STAIRLIFT, aspect_type=AspectType.PRESENCE, ), (50, 26): ElementMapping( elementType=ElementType.DISABLED_FACILITIES, aspect_type=AspectType.TYPE, ), (100, 3): ElementMapping( elementType=ElementType.PROPERTY, aspect_type=AspectType.AGE_BAND, ), (100, 14): ElementMapping( elementType=ElementType.PROPERTY, aspect_type=AspectType.CONSTRUCTION_TYPE, ), (100, 16): ElementMapping( elementType=ElementType.PROPERTY, aspect_type=AspectType.CLASSIFICATION, ), (210, 2): ElementMapping( elementType=ElementType.PASSENGER_LIFT, aspect_type=AspectType.TYPE, ), # ========================================================== # EXTERNAL – WALLS # ========================================================== (50, 16): ElementMapping( elementType=ElementType.PARTY_WALL_FIRE_BREAK, aspect_type=AspectType.PRESENCE, ), (53, 1): ElementMapping( elementType=ElementType.BOUNDARY_WALLS, aspect_type=AspectType.PRESENCE, ), (53, 4): ElementMapping( elementType=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.PRESENCE, ), (53, 5): ElementMapping( elementType=ElementType.EXTERNAL_NOISE_INSULATION, aspect_type=AspectType.ADEQUACY, ), (53, 14): ElementMapping( elementType=ElementType.GARAGE_WALLS, aspect_type=AspectType.MATERIAL, ), (53, 23): ElementMapping( elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH, ), (53, 30): ElementMapping( elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH, aspect_instance=2, ), (53, 36): ElementMapping( elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION, ), (53, 40): ElementMapping( elementType=ElementType.SPANDREL_PANELS, aspect_type=AspectType.MATERIAL, ), (53, 41): ElementMapping( elementType=ElementType.CLADDING, aspect_type=AspectType.MATERIAL, ), (100, 15): ElementMapping( elementType=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.CONDITION, ), (120, 1): ElementMapping( elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.STRUCTURE, ), (120, 2): ElementMapping( elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH, ), (120, 3): ElementMapping( elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION, ), # ========================================================== # EXTERNAL – ROOFS # ========================================================== (50, 15): ElementMapping( elementType=ElementType.LOFT_INSULATION, aspect_type=AspectType.TYPE, ), (53, 2): ElementMapping( elementType=ElementType.CHIMNEY, aspect_type=AspectType.PRESENCE, ), (53, 6): ElementMapping( elementType=ElementType.FASCIA_SOFFIT_BARGEBOARDS, aspect_type=AspectType.MATERIAL, ), (53, 7): ElementMapping( elementType=ElementType.FLAT_ROOF_COVERING, aspect_type=AspectType.MATERIAL, ), (53, 13): ElementMapping( elementType=ElementType.GARAGE_ROOF, aspect_type=AspectType.MATERIAL, ), (53, 15): ElementMapping( elementType=ElementType.GUTTERS, aspect_type=AspectType.MATERIAL, ), (53, 21): ElementMapping( elementType=ElementType.PITCHED_ROOF_COVERING, aspect_type=AspectType.MATERIAL, ), (53, 22): ElementMapping( elementType=ElementType.PORCH_CANOPY, aspect_type=AspectType.TYPE, ), (53, 47): ElementMapping( elementType=ElementType.ROOF, aspect_type=AspectType.STRUCTURE, ), (110, 1): ElementMapping( elementType=ElementType.ROOF, aspect_type=AspectType.MATERIAL, ), (110, 2): ElementMapping( elementType=ElementType.ROOF, aspect_type=AspectType.MATERIAL, aspect_instance=1, ), (110, 3): ElementMapping( elementType=ElementType.CHIMNEY, aspect_type=AspectType.WORK_REQUIRED, ), (110, 4): ElementMapping( elementType=ElementType.FASCIA, aspect_type=AspectType.MATERIAL, ), (110, 5): ElementMapping( elementType=ElementType.SOFFIT, aspect_type=AspectType.MATERIAL, ), (110, 6): ElementMapping( elementType=ElementType.RAINWATER_GOODS, aspect_type=AspectType.MATERIAL, ), (110, 7): ElementMapping( elementType=ElementType.LOFT_INSULATION, aspect_type=AspectType.WORK_REQUIRED, # possibly not the right aspect type ), (110, 8): ElementMapping( elementType=ElementType.PORCH_CANOPY, aspect_type=AspectType.MATERIAL, ), # ========================================================== # EXTERNAL – DOORS & WINDOWS # ========================================================== (50, 8): ElementMapping( elementType=ElementType.DOOR_ENTRY_HANDSET, aspect_type=AspectType.PRESENCE, ), (53, 8): ElementMapping( elementType=ElementType.FRONT_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 12): ElementMapping( elementType=ElementType.GARAGE_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 16): ElementMapping( elementType=ElementType.LINTEL, aspect_type=AspectType.PRESENCE, ), (53, 19): ElementMapping( elementType=ElementType.PATIO_FRENCH_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 25): ElementMapping( elementType=ElementType.REAR_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 29): ElementMapping( elementType=ElementType.SECONDARY_GLAZING, aspect_type=AspectType.PRESENCE, ), (53, 35): ElementMapping( elementType=ElementType.STORE_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 38): ElementMapping( elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.TYPE, ), (53, 39): ElementMapping( elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.TYPE, aspect_instance=2, ), (53, 43): ElementMapping( elementType=ElementType.FRONT_DOOR, aspect_type=AspectType.TYPE, ), (130, 1): ElementMapping( elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.MATERIAL, ), (130, 2): ElementMapping( elementType=ElementType.COMMUNAL_WINDOWS, aspect_type=AspectType.MATERIAL, ), (140, 1): ElementMapping( elementType=ElementType.MAIN_DOOR, aspect_type=AspectType.MATERIAL, ), (140, 2): ElementMapping( elementType=ElementType.STORE_DOOR, aspect_type=AspectType.MATERIAL, ), # Duplicate of (53, 35) (140, 3): ElementMapping( elementType=ElementType.GARAGE_DOOR, aspect_type=AspectType.MATERIAL, ), # Duplicate of (53, 12) (140, 4): ElementMapping( elementType=ElementType.BLOCK_ENTRANCE_DOOR, aspect_type=AspectType.MATERIAL, ), # ========================================================== # EXTERNAL AREAS # ========================================================== (53, 3): ElementMapping( elementType=ElementType.DOWNPIPES, aspect_type=AspectType.MATERIAL, ), (53, 9): ElementMapping( elementType=ElementType.FRONT_FENCING, aspect_type=AspectType.MATERIAL, ), (53, 10): ElementMapping( elementType=ElementType.FRONT_GATE, aspect_type=AspectType.TYPE, ), (53, 17): ElementMapping( elementType=ElementType.PARKING_AREAS, aspect_type=AspectType.MATERIAL, ), (53, 18): ElementMapping( elementType=ElementType.PATHS_AND_HARDSTANDINGS, aspect_type=AspectType.MATERIAL, ), (53, 24): ElementMapping( elementType=ElementType.PRIVATE_BALCONY, aspect_type=AspectType.PRESENCE, ), (53, 26): ElementMapping( elementType=ElementType.REAR_FENCING, aspect_type=AspectType.MATERIAL, ), (53, 27): ElementMapping( elementType=ElementType.REAR_GATE, aspect_type=AspectType.TYPE, ), (53, 28): ElementMapping( elementType=ElementType.RETAINING_WALLS, aspect_type=AspectType.PRESENCE, ), (53, 31): ElementMapping( elementType=ElementType.SIDE_FENCING, aspect_type=AspectType.MATERIAL, ), (53, 32): ElementMapping( elementType=ElementType.SOIL_AND_VENT, aspect_type=AspectType.MATERIAL, ), (53, 34): ElementMapping( elementType=ElementType.SOLAR_THERMALS, aspect_type=AspectType.PRESENCE, ), (53, 44): ElementMapping( elementType=ElementType.GARAGE_STRUCTURE, aspect_type=AspectType.TYPE, ), (53, 45): ElementMapping( elementType=ElementType.BALCONY_BALUSTRADE, aspect_type=AspectType.MATERIAL, ), (150, 1): ElementMapping( elementType=ElementType.BLOCK_ENTRANCE_DOOR, aspect_type=AspectType.MATERIAL, ), (150, 2): ElementMapping( elementType=ElementType.PATHS_AND_HARDSTANDINGS, aspect_type=AspectType.MATERIAL, ), # Duplicate of (53, 18) - correct? (150, 3): ElementMapping( elementType=ElementType.ROADS, aspect_type=AspectType.MATERIAL, ), (150, 4): ElementMapping( elementType=ElementType.BOUNDARY_WALLS, aspect_type=AspectType.MATERIAL, ), (150, 5): ElementMapping( elementType=ElementType.OUTBUILDINGS, aspect_type=AspectType.TYPE, ), (150, 6): ElementMapping( elementType=ElementType.GARAGE_STRUCTURE, aspect_type=AspectType.TYPE, ), # ========================================================== # INTERNAL – BATHROOMS & KITCHENS # ========================================================== (50, 1): ElementMapping( elementType=ElementType.SECONDARY_TOILET, aspect_type=AspectType.PRESENCE, ), (50, 9): ElementMapping( elementType=ElementType.BATHROOM_EXTRACTOR_FAN, aspect_type=AspectType.PRESENCE, ), (50, 9): ElementMapping( elementType=ElementType.KITCHEN, aspect_type=AspectType.TYPE, ), (50, 10): ElementMapping( elementType=ElementType.KITCHEN_EXTRACTOR_FAN, aspect_type=AspectType.PRESENCE, ), (50, 13): ElementMapping( elementType=ElementType.KITCHEN_SPACE_LAYOUT, aspect_type=AspectType.ADEQUACY, ), (50, 14): ElementMapping( elementType=ElementType.KITCHEN, aspect_type=AspectType.TYPE, ), (50, 17): ElementMapping( elementType=ElementType.BATHROOM, aspect_type=AspectType.LOCATION, ), (50, 18): ElementMapping( elementType=ElementType.BATHROOM, aspect_type=AspectType.TYPE, ), # Actually "Primary bathroom type" - ok like this? (50, 20): ElementMapping( elementType=ElementType.BATHROOM, aspect_type=AspectType.TYPE, element_instance=2, ), # Actually "Secondary bathroom type" - ok like this? (160, 1): ElementMapping( elementType=ElementType.KITCHEN, aspect_type=AspectType.CONDITION, ), (160, 2): ElementMapping( elementType=ElementType.KITCHEN_SPACE_LAYOUT, aspect_type=AspectType.ADEQUACY, ), (190, 1): ElementMapping( elementType=ElementType.BATHROOM, aspect_type=AspectType.CONDITION, ), (190, 2): ElementMapping( elementType=ElementType.SECONDARY_TOILET, aspect_type=AspectType.TYPE, ), # ========================================================== # COMMUNAL # ========================================================== (51, 1): ElementMapping( elementType=ElementType.COMMUNAL_AERIAL, aspect_type=AspectType.PRESENCE, ), (51, 2): ElementMapping( elementType=ElementType.COMMUNAL_AOV, aspect_type=AspectType.PRESENCE, ), (51, 3): ElementMapping( elementType=ElementType.COMMUNAL_BALCONY_WALKWAY, aspect_type=AspectType.PRESENCE, ), (51, 4): ElementMapping( elementType=ElementType.COMMUNAL_BATHROOM, aspect_type=AspectType.TYPE, ), (51, 5): ElementMapping( elementType=ElementType.COMMUNAL_BIN_STORE_DOORS, aspect_type=AspectType.PRESENCE, ), (51, 6): ElementMapping( elementType=ElementType.COMMUNAL_BIN_STORE_ROOF, aspect_type=AspectType.PRESENCE, ), (51, 7): ElementMapping( elementType=ElementType.COMMUNAL_BIN_STORE_WALLS, aspect_type=AspectType.MATERIAL, ), (51, 8): ElementMapping( elementType=ElementType.COMMUNAL_BMS, aspect_type=AspectType.PRESENCE, ), (51, 9): ElementMapping( elementType=ElementType.COMMUNAL_BOILER, aspect_type=AspectType.TYPE, ), (51, 10): ElementMapping( elementType=ElementType.COMMUNAL_BOOSTER_PUMP, aspect_type=AspectType.PRESENCE, ), (51, 11): ElementMapping( elementType=ElementType.COMMUNAL_CCTV, aspect_type=AspectType.PRESENCE, ), (51, 12): ElementMapping( elementType=ElementType.COMMUNAL_CIRCULATION_SPACE, aspect_type=AspectType.ADEQUACY, ), (51, 13): ElementMapping( elementType=ElementType.COMMUNAL_COLD_WATER_STORAGE, aspect_type=AspectType.PRESENCE, ), (51, 14): ElementMapping( elementType=ElementType.COMMUNAL_DOOR_ENTRY, aspect_type=AspectType.SYSTEM, ), (51, 15): ElementMapping( elementType=ElementType.COMMUNAL_DRY_RISER, aspect_type=AspectType.PRESENCE, ), (51, 16): ElementMapping( elementType=ElementType.COMMUNAL_EMERGENCY_LIGHTING, aspect_type=AspectType.PRESENCE, ), (51, 17): ElementMapping( elementType=ElementType.COMMUNAL_EXTERNAL_DOORS, aspect_type=AspectType.MATERIAL, ), (51, 19): ElementMapping( elementType=ElementType.COMMUNAL_FIRE_ALARM, aspect_type=AspectType.TYPE, ), (51, 20): ElementMapping( elementType=ElementType.COMMUNAL_INTERNAL_DECORATIONS, aspect_type=AspectType.PRESENCE, ), (51, 21): ElementMapping( elementType=ElementType.COMMUNAL_INTERNAL_DOORS, aspect_type=AspectType.MATERIAL, ), (51, 22): ElementMapping( elementType=ElementType.COMMUNAL_INTERNAL_FLOOR, aspect_type=AspectType.FINISH, ), (51, 23): ElementMapping( elementType=ElementType.COMMUNAL_KITCHEN, aspect_type=AspectType.TYPE, ), (51, 24): ElementMapping( elementType=ElementType.COMMUNAL_LATERAL_MAINS, aspect_type=AspectType.PRESENCE, ), (51, 25): ElementMapping( elementType=ElementType.COMMUNAL_LIGHTING, aspect_type=AspectType.PRESENCE, ), (51, 26): ElementMapping( elementType=ElementType.COMMUNAL_LIGHTING_CONDUCTOR, aspect_type=AspectType.PRESENCE, ), (51, 27): ElementMapping( elementType=ElementType.COMMUNAL_PASSENGER_LIFT, aspect_type=AspectType.TYPE, ), (51, 28): ElementMapping( elementType=ElementType.COMMUNAL_ENTRANCE, aspect_type=AspectType.MATERIAL, element_instance=1, ), (51, 30): ElementMapping( elementType=ElementType.COMMUNAL_ENTRANCE, aspect_type=AspectType.FINISH, element_instance=2, ), (51, 31): ElementMapping( elementType=ElementType.COMMUNAL_SPRINKLER, aspect_type=AspectType.PRESENCE, ), (51, 29): ElementMapping( elementType=ElementType.COMMUNAL_REFUSE_CHUTE, aspect_type=AspectType.PRESENCE, ), (51, 32): ElementMapping( elementType=ElementType.COMMUNAL_STAIRS, aspect_type=AspectType.FINISH, ), (51, 33): ElementMapping( elementType=ElementType.COMMUNAL_STORE_DOORS, aspect_type=AspectType.MATERIAL, ), (51, 34): ElementMapping( elementType=ElementType.COMMUNAL_STORE_ROOF, aspect_type=AspectType.MATERIAL, ), (51, 35): ElementMapping( elementType=ElementType.COMMUNAL_STORE_WALLS, aspect_type=AspectType.MATERIAL, ), (51, 36): ElementMapping( elementType=ElementType.COMMUNAL_WALKWAYS, aspect_type=AspectType.FINISH, ), (51, 37): ElementMapping( elementType=ElementType.COMMUNAL_WARDEN_CALL_SYSTEM, aspect_type=AspectType.PRESENCE, ), (51, 38): ElementMapping( elementType=ElementType.COMMUNAL_TOILETS, aspect_type=AspectType.TYPE, ), (51, 39): ElementMapping( elementType=ElementType.COMMUNAL_WET_RISER, aspect_type=AspectType.PRESENCE, ), (51, 40): ElementMapping( elementType=ElementType.COMMUNAL_PLUG_SOCKETS, aspect_type=AspectType.PRESENCE, ), (200, 1): ElementMapping( elementType=ElementType.COMMUNAL_BOILER, aspect_type=AspectType.TYPE, ), # Duplicate of (51, 9) - correct? (200, 2): ElementMapping( elementType=ElementType.COMMUNAL_HEATING, aspect_type=AspectType.TYPE, ), (200, 3): ElementMapping( elementType=ElementType.COMMUNAL_ELECTRICS, aspect_type=AspectType.TYPE, ), (200, 4): ElementMapping( elementType=ElementType.COMMUNAL_FIRE_ALARM, aspect_type=AspectType.TYPE, ), (200, 5): ElementMapping( elementType=ElementType.COMMUNAL_LIFT, aspect_type=AspectType.TYPE, ), (200, 6): ElementMapping( elementType=ElementType.COMMUNAL_FLOOR_COVERING, aspect_type=AspectType.MATERIAL, ), (200, 7): ElementMapping( elementType=ElementType.COMMUNAL_KITCHEN, aspect_type=AspectType.TYPE, ), (200, 8): ElementMapping( elementType=ElementType.COMMUNAL_BATHROOM, aspect_type=AspectType.TYPE, ), # Duplicate of (51, 4) - correct? (200, 9): ElementMapping( elementType=ElementType.COMMUNAL_TOILETS, aspect_type=AspectType.TYPE, ), # Duplicate of (51, 38) - correct? (200, 10): ElementMapping( elementType=ElementType.COMMUNAL_GATES, aspect_type=AspectType.TYPE, ), # ========================================================== # INTERNAL – HEATING # ========================================================== (50, 4): ElementMapping( elementType=ElementType.HEATING_BOILER, aspect_type=AspectType.PRESENCE, ), # This is actually "Central heating boiler" - ok like this? (50, 5): ElementMapping( elementType=ElementType.CENTRAL_HEATING, aspect_type=AspectType.EXTENT, ), (50, 6): ElementMapping( elementType=ElementType.COLD_WATER_STORAGE, aspect_type=AspectType.PRESENCE, ), (50, 12): ElementMapping( elementType=ElementType.HEATING_DISTRIBUTION, aspect_type=AspectType.TYPE, ), (50, 19): ElementMapping( elementType=ElementType.PROGRAMMABLE_HEATING, aspect_type=AspectType.TYPE, ), (50, 25): ElementMapping( elementType=ElementType.HEATING_BOILER, aspect_type=AspectType.TYPE, ), (170, 1): ElementMapping( elementType=ElementType.HEATING_BOILER, aspect_type=AspectType.TYPE, ), # Duplicate of (50,25) - correct? (170, 2): ElementMapping( elementType=ElementType.HEATING_DISTRIBUTION, aspect_type=AspectType.TYPE, ), # Duplicate of (50,12) - correct? (170, 3): ElementMapping( elementType=ElementType.SECONDARY_HEATING, aspect_type=AspectType.TYPE, ), (170, 4): ElementMapping( elementType=ElementType.COLD_WATER_STORAGE, aspect_type=AspectType.TYPE, ), (170, 5): ElementMapping( elementType=ElementType.HOT_WATER_SYSTEM, aspect_type=AspectType.TYPE, ), # ========================================================== # ELECTRICS # ========================================================== (50, 24): ElementMapping( elementType=ElementType.INTERNAL_WIRING, aspect_type=AspectType.MATERIAL, ), (180, 1): ElementMapping( elementType=ElementType.ELECTRICAL_WIRING, aspect_type=AspectType.WORK_REQUIRED, ), # Not certain about the AspectType - only example in the sample data is "Full Rewire" (180, 2): ElementMapping( elementType=ElementType.CONSUMER_UNIT, aspect_type=AspectType.TYPE, ), (180, 3): ElementMapping( elementType=ElementType.SMOKE_DETECTION, aspect_type=AspectType.TYPE, ), # Duplicate of (50, 21) - correct? (180, 4): ElementMapping( elementType=ElementType.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE, ), # Duplicate of (50, 2) - correct? # ========================================================== # HHSRS # ========================================================== (54, 1): ElementMapping( elementType=ElementType.HHSRS_DAMP_AND_MOULD, aspect_type=AspectType.RISK, ), (54, 4): ElementMapping( elementType=ElementType.HHSRS_ASBESTOS_AND_MMF, aspect_type=AspectType.RISK, ), (54, 15): ElementMapping( elementType=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE, aspect_type=AspectType.RISK, ), (54, 29): ElementMapping( elementType=ElementType.HHSRS_STRUCTURAL_COLLAPSE, aspect_type=AspectType.RISK, ), }