From 32f9850a27e101503d819c7b3abda5d5eeb251f6 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Tue, 27 Jan 2026 16:08:20 +0000 Subject: [PATCH] minor fixes and TODO --- backend/condition/domain/element_type.py | 2 + .../domain/mapping/element_mapping.py | 4 +- .../domain/mapping/lbwf/lbwf_element_map.py | 240 ++++++------- .../domain/mapping/lbwf/lbwf_mapper.py | 2 +- .../mapping/peabody/peabody_element_map.py | 327 +++++++++--------- .../domain/mapping/peabody/peabody_mapper.py | 2 +- 6 files changed, 291 insertions(+), 286 deletions(-) diff --git a/backend/condition/domain/element_type.py b/backend/condition/domain/element_type.py index 32897895..bc2aa2d6 100644 --- a/backend/condition/domain/element_type.py +++ b/backend/condition/domain/element_type.py @@ -228,6 +228,8 @@ class ElementType(str, Enum): # HHSRS – ALL 29 HAZARDS # ========================================================== + # TODO: In order to group HHSRS, should there be a single HHSRS element type, and each of the below is an AspectType? + HHSRS_DAMP_AND_MOULD = "hhsrs_damp_and_mould" HHSRS_EXCESS_COLD = "hhsrs_excess_cold" HHSRS_EXCESS_HEAT = "hhsrs_excess_heat" diff --git a/backend/condition/domain/mapping/element_mapping.py b/backend/condition/domain/mapping/element_mapping.py index c93862c8..95fd08b9 100644 --- a/backend/condition/domain/mapping/element_mapping.py +++ b/backend/condition/domain/mapping/element_mapping.py @@ -1,13 +1,13 @@ from dataclasses import dataclass from typing import Optional -from xml.dom.minidom import Element from backend.condition.domain.aspect_type import AspectType +from backend.condition.domain.element_type import ElementType @dataclass(frozen=True) class ElementMapping: - element: Element + elementType: ElementType aspect_type: AspectType element_instance: Optional[int] = None aspect_instance: Optional[int] = None diff --git a/backend/condition/domain/mapping/lbwf/lbwf_element_map.py b/backend/condition/domain/mapping/lbwf/lbwf_element_map.py index 96f21b84..a547fe5c 100644 --- a/backend/condition/domain/mapping/lbwf/lbwf_element_map.py +++ b/backend/condition/domain/mapping/lbwf/lbwf_element_map.py @@ -8,11 +8,11 @@ LBWF_ELEMENT_MAP: dict[str, ElementMapping] = { # PROPERTY / GENERAL # ========================================================== "AHR_CAT": ElementMapping( - element=ElementType.ACCESSIBLE_HOUSING_REGISTER, + elementType=ElementType.ACCESSIBLE_HOUSING_REGISTER, aspect_type=AspectType.CATEGORY, ), "ASSETSAREA": ElementMapping( - element=ElementType.PROPERTY, + elementType=ElementType.PROPERTY, aspect_type=AspectType.AREA, ), # "DECNTHMINC": ElementMapping( @@ -20,302 +20,302 @@ LBWF_ELEMENT_MAP: dict[str, ElementMapping] = { # aspect_type=AspectType.INCLUSION, # ), # Ignore this one "QUALITYSTD": ElementMapping( - element=ElementType.QUALITY_STANDARD, + elementType=ElementType.QUALITY_STANDARD, aspect_type=AspectType.TYPE, ), "EXTSTOREY": ElementMapping( - element=ElementType.PROPERTY, + elementType=ElementType.PROPERTY, aspect_type=AspectType.CONFIGURATION, ), "FLVL": ElementMapping( - element=ElementType.FLOOR_LEVEL_FRONT_DOOR, + elementType=ElementType.FLOOR_LEVEL_FRONT_DOOR, aspect_type=AspectType.LOCATION, ), "INTFLRLVL": ElementMapping( - element=ElementType.FLOOR_LEVEL, + elementType=ElementType.FLOOR_LEVEL, aspect_type=AspectType.LOCATION, ), "INTNSEINSL": ElementMapping( - element=ElementType.EXTERNAL_NOISE_INSULATION, # Maybe this shouldn't be "EXTERNAL_" + elementType=ElementType.EXTERNAL_NOISE_INSULATION, # Maybe this shouldn't be "EXTERNAL_" aspect_type=AspectType.ADEQUACY, ), "INTSTEPSFD": ElementMapping( - element=ElementType.STEPS_TO_FRONT_DOOR, + elementType=ElementType.STEPS_TO_FRONT_DOOR, aspect_type=AspectType.QUANTITY, ), # ========================================================== # ASBESTOS (NON-HHSRS RECORD) # ========================================================== "ASBESTOS": ElementMapping( - element=ElementType.ASBESTOS, + elementType=ElementType.ASBESTOS, aspect_type=AspectType.PRESENCE, ), # ========================================================== # INTERNAL – BATHROOMS & KITCHENS # ========================================================== "INTBTHRLOC": ElementMapping( - element=ElementType.BATHROOM, + elementType=ElementType.BATHROOM, aspect_type=AspectType.LOCATION, ), "INTBTHADEQ": ElementMapping( - element=ElementType.BATHROOM, + elementType=ElementType.BATHROOM, aspect_type=AspectType.ADEQUACY, ), "INTKITADEQ": ElementMapping( - element=ElementType.KITCHEN, + elementType=ElementType.KITCHEN, aspect_type=AspectType.ADEQUACY, ), "INTCKRLOC": ElementMapping( - element=ElementType.KITCHEN, + elementType=ElementType.KITCHEN, aspect_type=AspectType.LOCATION, ), "INTADDWCW": ElementMapping( - element=ElementType.ADDITIONAL_WC_OR_WHB, + elementType=ElementType.ADDITIONAL_WC_OR_WHB, aspect_type=AspectType.PRESENCE, ), "INTBTHREML": ElementMapping( - element=ElementType.BATHROOM_REMAINING_LIFE_SOURCE, + elementType=ElementType.BATHROOM_REMAINING_LIFE_SOURCE, aspect_type=AspectType.TYPE, ), "INTKITREML": ElementMapping( - element=ElementType.KITCHEN_REMAINING_LIFE_SOURCE, + elementType=ElementType.KITCHEN_REMAINING_LIFE_SOURCE, aspect_type=AspectType.TYPE, ), "INTTNTINST": ElementMapping( - element=ElementType.TENANT_INSTALLED_KITCHEN, + elementType=ElementType.TENANT_INSTALLED_KITCHEN, aspect_type=AspectType.TYPE, # Not certain about this aspect type - need more data ), # ========================================================== # INTERNAL – FIRE # ========================================================== "FRARISKRTG": ElementMapping( - element=ElementType.FIRE_RISK_ASSESSMENT, + elementType=ElementType.FIRE_RISK_ASSESSMENT, aspect_type=AspectType.RATING, ), "FRATYPE": ElementMapping( - element=ElementType.FIRE_RISK_ASSESSMENT, + elementType=ElementType.FIRE_RISK_ASSESSMENT, aspect_type=AspectType.TYPE, ), "FRAEVACSTR": ElementMapping( - element=ElementType.FIRE_RISK_ASSESSMENT, + elementType=ElementType.FIRE_RISK_ASSESSMENT, aspect_type=AspectType.STRATEGY, ), "INTSMKDET": ElementMapping( - element=ElementType.SMOKE_DETECTION, + elementType=ElementType.SMOKE_DETECTION, aspect_type=AspectType.PRESENCE, ), "INTCHEXTNT": ElementMapping( - element=ElementType.HEATING_SYSTEM, + elementType=ElementType.HEATING_SYSTEM, aspect_type=AspectType.EXTENT, ), # ========================================================== # HEATING & SERVICES # ========================================================== "INTCHEXTNT": ElementMapping( - element=ElementType.CENTRAL_HEATING, + elementType=ElementType.CENTRAL_HEATING, aspect_type=AspectType.EXTENT, ), "INTCHDIST": ElementMapping( - element=ElementType.HEATING_DISTRIBUTION, + elementType=ElementType.HEATING_DISTRIBUTION, aspect_type=AspectType.TYPE, ), "INTCHBLR": ElementMapping( - element=ElementType.HEATING_BOILER, + elementType=ElementType.HEATING_BOILER, aspect_type=AspectType.TYPE, ), "INTBOILERF": ElementMapping( - element=ElementType.BOILER_FUEL, + elementType=ElementType.BOILER_FUEL, aspect_type=AspectType.TYPE, ), "INTHTDISYS": ElementMapping( - element=ElementType.HEATING_SYSTEM, + elementType=ElementType.HEATING_SYSTEM, aspect_type=AspectType.DISTRIBUTION, ), "INTWTRHTNG": ElementMapping( - element=ElementType.WATER_HEATING, + elementType=ElementType.WATER_HEATING, aspect_type=AspectType.TYPE, ), "INTCOMHTG": ElementMapping( - element=ElementType.COMMUNITY_HEATING, + elementType=ElementType.COMMUNITY_HEATING, aspect_type=AspectType.TYPE, ), "INTELECTRC": ElementMapping( - element=ElementType.ELECTRICS, + elementType=ElementType.ELECTRICS, aspect_type=AspectType.WORK_REQUIRED, # Not certain about this aspect type - need more data ), "INTGASAVAI": ElementMapping( - element=ElementType.GAS_AVAILABLE, + elementType=ElementType.GAS_AVAILABLE, aspect_type=AspectType.PRESENCE, # Maybe should be AspectType.TYPE ? ), "INTHEATREC": ElementMapping( - element=ElementType.HEAT_RECOVERY_UNITS, + elementType=ElementType.HEAT_RECOVERY_UNITS, aspect_type=AspectType.PRESENCE, ), "INTHTIMP": ElementMapping( - element=ElementType.GAS_AVAILABLE, + elementType=ElementType.GAS_AVAILABLE, aspect_type=AspectType.WORK_REQUIRED, ), "INTPROGHTG": ElementMapping( - element=ElementType.PROGRAMMABLE_HEATING, + elementType=ElementType.PROGRAMMABLE_HEATING, aspect_type=AspectType.TYPE, # Should maybe be PRESENCE, but set to TYPE for consistency with Peabody data ), # ========================================================== # EXTERNAL – WALLS (INSTANCED) # ========================================================== "EXTWALLSTR": ElementMapping( - element=ElementType.EXTERNAL_WALL, + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.STRUCTURE, element_instance=1, ), "EXTWALLFN1": ElementMapping( - element=ElementType.EXTERNAL_WALL, + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH, element_instance=1, ), "EXTWALLFN2": ElementMapping( - element=ElementType.EXTERNAL_WALL, + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH, element_instance=1, aspect_instance=2, ), "EXTWALLINS": ElementMapping( - element=ElementType.EXTERNAL_WALL, + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION, ), "EXTWALLSPL": ElementMapping( - element=ElementType.EXTERNAL_WALL, + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.CONDITION, ), "EXTDWNPTYP": ElementMapping( - element=ElementType.DOWNPIPES, + elementType=ElementType.DOWNPIPES, aspect_type=AspectType.MATERIAL, ), "EXTGUTRTYP": ElementMapping( - element=ElementType.GUTTERS, + elementType=ElementType.GUTTERS, aspect_type=AspectType.MATERIAL, ), # ========================================================== # EXTERNAL – ROOFS (INSTANCED) # ========================================================== "EXTRFSTR1": ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.STRUCTURE, element_instance=1, ), "EXTRFSTR2": ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.STRUCTURE, element_instance=2, ), "EXTRFSTR3": ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.STRUCTURE, element_instance=3, ), "EXTROOF1": ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.COVERING, element_instance=1, ), "EXTROOF2": ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.COVERING, element_instance=2, ), "EXTROOF3": ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.COVERING, element_instance=3, ), "EXTCHIMNEY": ElementMapping( - element=ElementType.CHIMNEY, + elementType=ElementType.CHIMNEY, aspect_type=AspectType.WORK_REQUIRED, ), "EXTFASOFBR": ElementMapping( - element=ElementType.FASCIA_SOFFIT_BARGEBOARDS, + elementType=ElementType.FASCIA_SOFFIT_BARGEBOARDS, aspect_type=AspectType.MATERIAL, ), "EXTGARROOF": ElementMapping( - element=ElementType.GARAGE_ROOF, + elementType=ElementType.GARAGE_ROOF, aspect_type=AspectType.MATERIAL, ), "EXTGARSTRF": ElementMapping( - element=ElementType.GARAGE_AND_STORE_ROOF, + elementType=ElementType.GARAGE_AND_STORE_ROOF, aspect_type=AspectType.MATERIAL, ), "EXTSTRROOF": ElementMapping( - element=ElementType.STORE_ROOF, + elementType=ElementType.STORE_ROOF, aspect_type=AspectType.MATERIAL, ), "INTLOFTINS": ElementMapping( - element=ElementType.LOFT_INSULATION, + elementType=ElementType.LOFT_INSULATION, aspect_type=AspectType.TYPE, ), # ========================================================== # EXTERNAL – DOORS & WINDOWS # ========================================================== "INTFRDOOR": ElementMapping( - element=ElementType.EXTERNAL_DOOR, + elementType=ElementType.EXTERNAL_DOOR, aspect_type=AspectType.TYPE, ), "INTFRDRFRR": ElementMapping( - element=ElementType.EXTERNAL_DOOR, + elementType=ElementType.EXTERNAL_DOOR, aspect_type=AspectType.FIRE_RATING, ), "EXTBKSDDR1": ElementMapping( - element=ElementType.EXTERNAL_DOOR, + elementType=ElementType.EXTERNAL_DOOR, aspect_type=AspectType.TYPE, element_instance=1, ), "EXTBKSDDR2": ElementMapping( - element=ElementType.EXTERNAL_DOOR, + elementType=ElementType.EXTERNAL_DOOR, aspect_type=AspectType.TYPE, element_instance=2, ), "INTWDWTYPE": ElementMapping( - element=ElementType.EXTERNAL_WINDOWS, + elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.TYPE, ), "EXTWNDWS1": ElementMapping( - element=ElementType.EXTERNAL_WINDOWS, + elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.TYPE, element_instance=1, ), "EXTWNDWS2": ElementMapping( - element=ElementType.EXTERNAL_WINDOWS, + elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.TYPE, element_instance=2, ), "EXTGARDOOR": ElementMapping( - element=ElementType.GARAGE_DOOR, + elementType=ElementType.GARAGE_DOOR, aspect_type=AspectType.MATERIAL, ), "EXTGARSTDR": ElementMapping( - element=ElementType.GARAGE_AND_STORE_DOOR, + elementType=ElementType.GARAGE_AND_STORE_DOOR, aspect_type=AspectType.MATERIAL, ), "EXTSTRDOOR": ElementMapping( - element=ElementType.STORE_DOOR, + elementType=ElementType.STORE_DOOR, aspect_type=AspectType.MATERIAL, ), "EXTGARWDWS": ElementMapping( - element=ElementType.GARAGE_WINDOWS, + elementType=ElementType.GARAGE_WINDOWS, aspect_type=AspectType.MATERIAL, ), "EXTSTRWDWS": ElementMapping( - element=ElementType.STORE_WINDOWS, + elementType=ElementType.STORE_WINDOWS, aspect_type=AspectType.MATERIAL, ), "EXTGARSTWD": ElementMapping( - element=ElementType.GARAGE_AND_STORE_WINDOWS, + elementType=ElementType.GARAGE_AND_STORE_WINDOWS, aspect_type=AspectType.MATERIAL, ), "EXTLINTELS": ElementMapping( - element=ElementType.LINTEL, + elementType=ElementType.LINTEL, aspect_type=AspectType.PRESENCE, ), "EXTPTFRDR1": ElementMapping( - element=ElementType.PATIO_FRENCH_DOOR, + elementType=ElementType.PATIO_FRENCH_DOOR, aspect_type=AspectType.MATERIAL, element_instance=1, ), @@ -323,217 +323,217 @@ LBWF_ELEMENT_MAP: dict[str, ElementMapping] = { # EXTERNAL AREAS # ========================================================== "EXTBALCONY": ElementMapping( - element=ElementType.PRIVATE_BALCONY, + elementType=ElementType.PRIVATE_BALCONY, aspect_type=AspectType.PRESENCE, ), "EXTBPOINTG": ElementMapping( - element=ElementType.EXTERNAL_BRICKWORK_POINTING, + elementType=ElementType.EXTERNAL_BRICKWORK_POINTING, aspect_type=AspectType.PRESENCE, ), "EXTDRPKERB": ElementMapping( - element=ElementType.DROP_KERB, + elementType=ElementType.DROP_KERB, aspect_type=AspectType.PRESENCE, ), "EXTEXTDECS": ElementMapping( - element=ElementType.EXTERNAL_DECORATION, + elementType=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.PRESENCE, ), "EXTHARDSTD": ElementMapping( - element=ElementType.PATHS_AND_HARDSTANDINGS, + elementType=ElementType.PATHS_AND_HARDSTANDINGS, aspect_type=AspectType.MATERIAL, ), "EXTINTDWNP": ElementMapping( - element=ElementType.INTERNAL_DOWNPIPES_EXTERNAL_AREA, + elementType=ElementType.INTERNAL_DOWNPIPES_EXTERNAL_AREA, aspect_type=AspectType.MATERIAL, ), "EXTOUTBOH": ElementMapping( - element=ElementType.OUTBUILDING_OVERHAUL, + elementType=ElementType.OUTBUILDING_OVERHAUL, aspect_type=AspectType.TYPE, ), "EXTPARKING": ElementMapping( - element=ElementType.PARKING_AREAS, + elementType=ElementType.PARKING_AREAS, aspect_type=AspectType.PRESENCE, ), "EXTPCHCNPY": ElementMapping( - element=ElementType.PORCH_CANOPY, + elementType=ElementType.PORCH_CANOPY, aspect_type=AspectType.TYPE, ), "EXTSTRINSP": ElementMapping( - element=ElementType.EXTERNAL_STRUCTURAL_DEFECTS, + elementType=ElementType.EXTERNAL_STRUCTURAL_DEFECTS, aspect_type=AspectType.TYPE, # Need more sample data to know whether this is the correct aspect type ), "INTACCRAMP": ElementMapping( - element=ElementType.ACCESS_RAMP, + elementType=ElementType.ACCESS_RAMP, aspect_type=AspectType.TYPE, # # Need more sample data to know whether this is the correct aspect type ), # ====================== # FITNESS FOR HUMAN HABITATION # ====================== "FFHHDAMP": ElementMapping( - element=ElementType.FFHH_DAMP, + elementType=ElementType.FFHH_DAMP, aspect_type=AspectType.RISK, ), "FFHHHCWAT": ElementMapping( - element=ElementType.FFHH_HOT_AND_COLD_WATER, + elementType=ElementType.FFHH_HOT_AND_COLD_WATER, aspect_type=AspectType.RISK, ), "FFHHDRNWC": ElementMapping( - element=ElementType.FFHH_DRAINAGE_LAVATORIES, + elementType=ElementType.FFHH_DRAINAGE_LAVATORIES, aspect_type=AspectType.RISK, ), "FFHHNEGLC": ElementMapping( - element=ElementType.FFHH_NEGLECTED, + elementType=ElementType.FFHH_NEGLECTED, aspect_type=AspectType.RISK, ), "FFHHNONAT": ElementMapping( - element=ElementType.FFHH_NATURAL_LIGHT, + elementType=ElementType.FFHH_NATURAL_LIGHT, aspect_type=AspectType.RISK, ), "FFHHNOVEN": ElementMapping( - element=ElementType.FFHH_VENTILATION, + elementType=ElementType.FFHH_VENTILATION, aspect_type=AspectType.RISK, ), "FFHHPRPCK": ElementMapping( - element=ElementType.FFHH_FOOD_PREP_AND_WASHUP, + elementType=ElementType.FFHH_FOOD_PREP_AND_WASHUP, aspect_type=AspectType.RISK, ), "FFHHUNLAY": ElementMapping( - element=ElementType.FFHH_UNSAFE_LAYOUT, + elementType=ElementType.FFHH_UNSAFE_LAYOUT, aspect_type=AspectType.RISK, ), "FFHHUNSTA": ElementMapping( - element=ElementType.FFHH_UNSTABLE_BUILDING, + elementType=ElementType.FFHH_UNSTABLE_BUILDING, aspect_type=AspectType.RISK, ), # ========================================================== # HHSRS # ========================================================== "HHSRSDAMP": ElementMapping( - element=ElementType.HHSRS_DAMP_AND_MOULD, + elementType=ElementType.HHSRS_DAMP_AND_MOULD, aspect_type=AspectType.RISK, ), "HHSRSCOLD": ElementMapping( - element=ElementType.HHSRS_EXCESS_COLD, + elementType=ElementType.HHSRS_EXCESS_COLD, aspect_type=AspectType.RISK, ), "HHSRSHEAT": ElementMapping( - element=ElementType.HHSRS_EXCESS_HEAT, + elementType=ElementType.HHSRS_EXCESS_HEAT, aspect_type=AspectType.RISK, ), "HHSRSASB": ElementMapping( - element=ElementType.HHSRS_ASBESTOS_AND_MMF, + elementType=ElementType.HHSRS_ASBESTOS_AND_MMF, aspect_type=AspectType.RISK, ), "HHSRSBIOC": ElementMapping( - element=ElementType.HHSRS_BIOCIDES, + elementType=ElementType.HHSRS_BIOCIDES, aspect_type=AspectType.RISK, ), "HHSRSCO": ElementMapping( - element=ElementType.HHSRS_CARBON_MONOXIDE, + elementType=ElementType.HHSRS_CARBON_MONOXIDE, aspect_type=AspectType.RISK, ), "HHSRSNO2": ElementMapping( - element=ElementType.HHSRS_CARBON_MONOXIDE, + elementType=ElementType.HHSRS_CARBON_MONOXIDE, aspect_type=AspectType.RISK, ), # Duplicate of HHSRSCO; I think they relate to the same HHSRS hazard "HHSRSSO2": ElementMapping( - element=ElementType.HHSRS_CARBON_MONOXIDE, + elementType=ElementType.HHSRS_CARBON_MONOXIDE, aspect_type=AspectType.RISK, ), # Duplicate of HHSRSCO; I think they relate to the same HHSRS hazard "HHSRSLEAD": ElementMapping( - element=ElementType.HHSRS_LEAD, + elementType=ElementType.HHSRS_LEAD, aspect_type=AspectType.RISK, ), "HHSRSRADIA": ElementMapping( - element=ElementType.HHSRS_RADIATION, + elementType=ElementType.HHSRS_RADIATION, aspect_type=AspectType.RISK, ), "HHSRSFUEL": ElementMapping( - element=ElementType.HHSRS_UNCOMBUSTED_FUEL_GAS, + elementType=ElementType.HHSRS_UNCOMBUSTED_FUEL_GAS, aspect_type=AspectType.RISK, ), "HHSRSORGAN": ElementMapping( - element=ElementType.HHSRS_VOLATILE_ORGANIC_COMPOUNDS, + elementType=ElementType.HHSRS_VOLATILE_ORGANIC_COMPOUNDS, aspect_type=AspectType.RISK, ), "HHSRSCROWD": ElementMapping( - element=ElementType.HHSRS_CROWDING_AND_SPACE, + elementType=ElementType.HHSRS_CROWDING_AND_SPACE, aspect_type=AspectType.RISK, ), "HHSRSENTRY": ElementMapping( - element=ElementType.HHSRS_ENTRY_BY_INTRUDERS, + elementType=ElementType.HHSRS_ENTRY_BY_INTRUDERS, aspect_type=AspectType.RISK, ), "HHSRSLIGHT": ElementMapping( - element=ElementType.HHSRS_LIGHTING, + elementType=ElementType.HHSRS_LIGHTING, aspect_type=AspectType.RISK, ), "HHSRSNOISE": ElementMapping( - element=ElementType.HHSRS_NOISE, + elementType=ElementType.HHSRS_NOISE, aspect_type=AspectType.RISK, ), "HHSRSDOMES": ElementMapping( - element=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE, + elementType=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE, aspect_type=AspectType.RISK, ), "HHSRSFOOD": ElementMapping( - element=ElementType.HHSRS_FOOD_SAFETY, + elementType=ElementType.HHSRS_FOOD_SAFETY, aspect_type=AspectType.RISK, ), "HHSRSPERS": ElementMapping( - element=ElementType.HHSRS_PERSONAL_HYGIENE_SANITATION, + elementType=ElementType.HHSRS_PERSONAL_HYGIENE_SANITATION, aspect_type=AspectType.RISK, ), "HHSRSWATER": ElementMapping( - element=ElementType.HHSRS_WATER_SUPPLY, + elementType=ElementType.HHSRS_WATER_SUPPLY, aspect_type=AspectType.RISK, ), "HHSRSFBATH": ElementMapping( - element=ElementType.HHSRS_FALLS_ASSOCIATED_WITH_BATHS, + elementType=ElementType.HHSRS_FALLS_ASSOCIATED_WITH_BATHS, aspect_type=AspectType.RISK, ), "HHSRSFLEVE": ElementMapping( - element=ElementType.HHSRS_FALLS_ON_LEVEL_SURFACES, + elementType=ElementType.HHSRS_FALLS_ON_LEVEL_SURFACES, aspect_type=AspectType.RISK, ), "HHSRSFSTAI": ElementMapping( - element=ElementType.HHSRS_FALLS_ON_STAIRS, + elementType=ElementType.HHSRS_FALLS_ON_STAIRS, aspect_type=AspectType.RISK, ), "HHSRSFBETW": ElementMapping( - element=ElementType.HHSRS_FALLS_BETWEEN_LEVELS, + elementType=ElementType.HHSRS_FALLS_BETWEEN_LEVELS, aspect_type=AspectType.RISK, ), "HHSRSELEC": ElementMapping( - element=ElementType.HHSRS_ELECTRICAL_HAZARDS, + elementType=ElementType.HHSRS_ELECTRICAL_HAZARDS, aspect_type=AspectType.RISK, ), "HHSRSFIRE": ElementMapping( - element=ElementType.HHSRS_FIRE, + elementType=ElementType.HHSRS_FIRE, aspect_type=AspectType.RISK, ), "HHSRSFLAME": ElementMapping( - element=ElementType.HHSRS_FLAMES_HOT_SURFACES, + elementType=ElementType.HHSRS_FLAMES_HOT_SURFACES, aspect_type=AspectType.RISK, ), "HHSRSENTRP": ElementMapping( - element=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT, + elementType=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT, aspect_type=AspectType.RISK, ), "HHSRSEXPLO": ElementMapping( - element=ElementType.HHSRS_EXPLOSIONS, + elementType=ElementType.HHSRS_EXPLOSIONS, aspect_type=AspectType.RISK, ), "HHSRSSTRUC": ElementMapping( - element=ElementType.HHSRS_STRUCTURAL_COLLAPSE, + elementType=ElementType.HHSRS_STRUCTURAL_COLLAPSE, aspect_type=AspectType.RISK, ), "HHSRSCLOW": ElementMapping( - element=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT, + elementType=ElementType.HHSRS_COLLISION_AND_ENTRAPMENT, aspect_type=AspectType.RISK, ), "HHSRSPOSI": ElementMapping( - element=ElementType.HHSRS_AMENITIES, + elementType=ElementType.HHSRS_AMENITIES, aspect_type=AspectType.RISK, ), } diff --git a/backend/condition/domain/mapping/lbwf/lbwf_mapper.py b/backend/condition/domain/mapping/lbwf/lbwf_mapper.py index f11133bf..09109ef9 100644 --- a/backend/condition/domain/mapping/lbwf/lbwf_mapper.py +++ b/backend/condition/domain/mapping/lbwf/lbwf_mapper.py @@ -36,7 +36,7 @@ class LbwfMapper(Mapper): ) element_key = ( - element_mapping.element, + element_mapping.elementType, element_mapping.element_instance or 1, ) diff --git a/backend/condition/domain/mapping/peabody/peabody_element_map.py b/backend/condition/domain/mapping/peabody/peabody_element_map.py index 62cb2fc3..2281a17c 100644 --- a/backend/condition/domain/mapping/peabody/peabody_element_map.py +++ b/backend/condition/domain/mapping/peabody/peabody_element_map.py @@ -7,660 +7,663 @@ PEABODY_ELEMENT_MAP = { # ========================================================== # PROPERTY / GENERAL # ========================================================== - (100, 1): ElementMapping(element=ElementType.PROPERTY, aspect_type=AspectType.TYPE), + (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( - element=ElementType.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE + elementType=ElementType.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE ), - (50, 3): ElementMapping(element=ElementType.CCU, aspect_type=AspectType.TYPE), + (50, 3): ElementMapping(elementType=ElementType.CCU, aspect_type=AspectType.TYPE), (50, 7): ElementMapping( - element=ElementType.DISABLED_HOIST_TRACKING, aspect_type=AspectType.PRESENCE + elementType=ElementType.DISABLED_HOIST_TRACKING, aspect_type=AspectType.PRESENCE ), (50, 11): ElementMapping( - element=ElementType.HEAT_DETECTION, aspect_type=AspectType.TYPE + elementType=ElementType.HEAT_DETECTION, aspect_type=AspectType.TYPE ), (50, 21): ElementMapping( - element=ElementType.SMOKE_DETECTION, aspect_type=AspectType.TYPE + elementType=ElementType.SMOKE_DETECTION, aspect_type=AspectType.TYPE ), (50, 22): ElementMapping( - element=ElementType.STAIRLIFT, aspect_type=AspectType.PRESENCE + elementType=ElementType.STAIRLIFT, aspect_type=AspectType.PRESENCE ), (50, 26): ElementMapping( - element=ElementType.DISABLED_FACILITIES, aspect_type=AspectType.TYPE + elementType=ElementType.DISABLED_FACILITIES, aspect_type=AspectType.TYPE ), (100, 3): ElementMapping( - element=ElementType.PROPERTY, aspect_type=AspectType.AGE_BAND + elementType=ElementType.PROPERTY, aspect_type=AspectType.AGE_BAND ), (100, 14): ElementMapping( - element=ElementType.PROPERTY, aspect_type=AspectType.CONSTRUCTION_TYPE + elementType=ElementType.PROPERTY, aspect_type=AspectType.CONSTRUCTION_TYPE ), (100, 16): ElementMapping( - element=ElementType.PROPERTY, aspect_type=AspectType.CLASSIFICATION + elementType=ElementType.PROPERTY, aspect_type=AspectType.CLASSIFICATION ), (210, 2): ElementMapping( - element=ElementType.PASSENGER_LIFT, aspect_type=AspectType.TYPE + elementType=ElementType.PASSENGER_LIFT, aspect_type=AspectType.TYPE ), # ========================================================== # EXTERNAL – WALLS # ========================================================== (50, 16): ElementMapping( - element=ElementType.PARTY_WALL_FIRE_BREAK, aspect_type=AspectType.PRESENCE + elementType=ElementType.PARTY_WALL_FIRE_BREAK, aspect_type=AspectType.PRESENCE ), (53, 1): ElementMapping( - element=ElementType.BOUNDARY_WALLS, aspect_type=AspectType.PRESENCE + elementType=ElementType.BOUNDARY_WALLS, aspect_type=AspectType.PRESENCE ), (53, 4): ElementMapping( - element=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.PRESENCE + elementType=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.PRESENCE ), (53, 5): ElementMapping( - element=ElementType.EXTERNAL_NOISE_INSULATION, aspect_type=AspectType.ADEQUACY + elementType=ElementType.EXTERNAL_NOISE_INSULATION, + aspect_type=AspectType.ADEQUACY, ), (53, 14): ElementMapping( - element=ElementType.GARAGE_WALLS, aspect_type=AspectType.MATERIAL + elementType=ElementType.GARAGE_WALLS, aspect_type=AspectType.MATERIAL ), (53, 23): ElementMapping( - element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH ), (53, 30): ElementMapping( - element=ElementType.EXTERNAL_WALL, + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH, aspect_instance=2, ), (53, 36): ElementMapping( - element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION ), (53, 40): ElementMapping( - element=ElementType.SPANDREL_PANELS, aspect_type=AspectType.MATERIAL + elementType=ElementType.SPANDREL_PANELS, aspect_type=AspectType.MATERIAL ), (53, 41): ElementMapping( - element=ElementType.CLADDING, aspect_type=AspectType.MATERIAL + elementType=ElementType.CLADDING, aspect_type=AspectType.MATERIAL ), (100, 15): ElementMapping( - element=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.CONDITION + elementType=ElementType.EXTERNAL_DECORATION, aspect_type=AspectType.CONDITION ), (120, 1): ElementMapping( - element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.STRUCTURE + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.STRUCTURE ), (120, 2): ElementMapping( - element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.FINISH ), (120, 3): ElementMapping( - element=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION + elementType=ElementType.EXTERNAL_WALL, aspect_type=AspectType.INSULATION ), # ========================================================== # EXTERNAL – ROOFS # ========================================================== (50, 15): ElementMapping( - element=ElementType.LOFT_INSULATION, + elementType=ElementType.LOFT_INSULATION, aspect_type=AspectType.TYPE, ), (53, 2): ElementMapping( - element=ElementType.CHIMNEY, + elementType=ElementType.CHIMNEY, aspect_type=AspectType.PRESENCE, ), (53, 6): ElementMapping( - element=ElementType.FASCIA_SOFFIT_BARGEBOARDS, + elementType=ElementType.FASCIA_SOFFIT_BARGEBOARDS, aspect_type=AspectType.MATERIAL, ), (53, 7): ElementMapping( - element=ElementType.FLAT_ROOF_COVERING, + elementType=ElementType.FLAT_ROOF_COVERING, aspect_type=AspectType.MATERIAL, ), (53, 13): ElementMapping( - element=ElementType.GARAGE_ROOF, + elementType=ElementType.GARAGE_ROOF, aspect_type=AspectType.MATERIAL, ), (53, 15): ElementMapping( - element=ElementType.GUTTERS, + elementType=ElementType.GUTTERS, aspect_type=AspectType.MATERIAL, ), (53, 21): ElementMapping( - element=ElementType.PITCHED_ROOF_COVERING, + elementType=ElementType.PITCHED_ROOF_COVERING, aspect_type=AspectType.MATERIAL, ), (53, 22): ElementMapping( - element=ElementType.PORCH_CANOPY, + elementType=ElementType.PORCH_CANOPY, aspect_type=AspectType.TYPE, ), (53, 47): ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.STRUCTURE, ), (110, 1): ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.MATERIAL, element_instance=1, ), (110, 2): ElementMapping( - element=ElementType.ROOF, + elementType=ElementType.ROOF, aspect_type=AspectType.MATERIAL, element_instance=1, ), (110, 3): ElementMapping( - element=ElementType.CHIMNEY, + elementType=ElementType.CHIMNEY, aspect_type=AspectType.WORK_REQUIRED, ), (110, 4): ElementMapping( - element=ElementType.FASCIA, + elementType=ElementType.FASCIA, aspect_type=AspectType.MATERIAL, ), (110, 5): ElementMapping( - element=ElementType.SOFFIT, + elementType=ElementType.SOFFIT, aspect_type=AspectType.MATERIAL, ), (110, 6): ElementMapping( - element=ElementType.RAINWATER_GOODS, + elementType=ElementType.RAINWATER_GOODS, aspect_type=AspectType.MATERIAL, ), (110, 7): ElementMapping( - element=ElementType.LOFT_INSULATION, + elementType=ElementType.LOFT_INSULATION, aspect_type=AspectType.WORK_REQUIRED, # possibly not the right aspect type ), (110, 8): ElementMapping( - element=ElementType.PORCH_CANOPY, + elementType=ElementType.PORCH_CANOPY, aspect_type=AspectType.MATERIAL, ), # ========================================================== # EXTERNAL – DOORS & WINDOWS # ========================================================== (50, 8): ElementMapping( - element=ElementType.DOOR_ENTRY_HANDSET, + elementType=ElementType.DOOR_ENTRY_HANDSET, aspect_type=AspectType.PRESENCE, ), (53, 8): ElementMapping( - element=ElementType.FRONT_DOOR, + elementType=ElementType.FRONT_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 12): ElementMapping( - element=ElementType.GARAGE_DOOR, + elementType=ElementType.GARAGE_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 16): ElementMapping( - element=ElementType.LINTEL, + elementType=ElementType.LINTEL, aspect_type=AspectType.PRESENCE, ), (53, 19): ElementMapping( - element=ElementType.PATIO_FRENCH_DOOR, + elementType=ElementType.PATIO_FRENCH_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 25): ElementMapping( - element=ElementType.REAR_DOOR, + elementType=ElementType.REAR_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 29): ElementMapping( - element=ElementType.SECONDARY_GLAZING, + elementType=ElementType.SECONDARY_GLAZING, aspect_type=AspectType.PRESENCE, ), (53, 35): ElementMapping( - element=ElementType.STORE_DOOR, + elementType=ElementType.STORE_DOOR, aspect_type=AspectType.MATERIAL, ), (53, 38): ElementMapping( - element=ElementType.EXTERNAL_WINDOWS, + elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.TYPE, element_instance=1, ), (53, 39): ElementMapping( - element=ElementType.EXTERNAL_WINDOWS, + elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.TYPE, element_instance=2, ), (53, 43): ElementMapping( - element=ElementType.FRONT_DOOR, + elementType=ElementType.FRONT_DOOR, aspect_type=AspectType.TYPE, ), (130, 1): ElementMapping( - element=ElementType.EXTERNAL_WINDOWS, + elementType=ElementType.EXTERNAL_WINDOWS, aspect_type=AspectType.MATERIAL, ), (130, 2): ElementMapping( - element=ElementType.COMMUNAL_WINDOWS, + elementType=ElementType.COMMUNAL_WINDOWS, aspect_type=AspectType.MATERIAL, ), (140, 1): ElementMapping( - element=ElementType.MAIN_DOOR, + elementType=ElementType.MAIN_DOOR, aspect_type=AspectType.MATERIAL, ), (140, 2): ElementMapping( - element=ElementType.STORE_DOOR, + elementType=ElementType.STORE_DOOR, aspect_type=AspectType.MATERIAL, ), # Duplicate of (53, 35) (140, 3): ElementMapping( - element=ElementType.GARAGE_DOOR, + elementType=ElementType.GARAGE_DOOR, aspect_type=AspectType.MATERIAL, ), # Duplicate of (53, 12) (140, 4): ElementMapping( - element=ElementType.BLOCK_ENTRANCE_DOOR, + elementType=ElementType.BLOCK_ENTRANCE_DOOR, aspect_type=AspectType.MATERIAL, ), # ========================================================== # EXTERNAL AREAS # ========================================================== (53, 3): ElementMapping( - element=ElementType.DOWNPIPES, + elementType=ElementType.DOWNPIPES, aspect_type=AspectType.MATERIAL, ), (53, 9): ElementMapping( - element=ElementType.FRONT_FENCING, + elementType=ElementType.FRONT_FENCING, aspect_type=AspectType.MATERIAL, ), (53, 10): ElementMapping( - element=ElementType.FRONT_GATE, + elementType=ElementType.FRONT_GATE, aspect_type=AspectType.TYPE, ), (53, 17): ElementMapping( - element=ElementType.PARKING_AREAS, + elementType=ElementType.PARKING_AREAS, aspect_type=AspectType.MATERIAL, ), (53, 18): ElementMapping( - element=ElementType.PATHS_AND_HARDSTANDINGS, + elementType=ElementType.PATHS_AND_HARDSTANDINGS, aspect_type=AspectType.MATERIAL, ), (53, 24): ElementMapping( - element=ElementType.PRIVATE_BALCONY, + elementType=ElementType.PRIVATE_BALCONY, aspect_type=AspectType.PRESENCE, ), (53, 26): ElementMapping( - element=ElementType.REAR_FENCING, + elementType=ElementType.REAR_FENCING, aspect_type=AspectType.MATERIAL, ), (53, 27): ElementMapping( - element=ElementType.REAR_GATE, + elementType=ElementType.REAR_GATE, aspect_type=AspectType.TYPE, ), (53, 28): ElementMapping( - element=ElementType.RETAINING_WALLS, + elementType=ElementType.RETAINING_WALLS, aspect_type=AspectType.PRESENCE, ), (53, 31): ElementMapping( - element=ElementType.SIDE_FENCING, + elementType=ElementType.SIDE_FENCING, aspect_type=AspectType.MATERIAL, ), (53, 32): ElementMapping( - element=ElementType.SOIL_AND_VENT, + elementType=ElementType.SOIL_AND_VENT, aspect_type=AspectType.MATERIAL, ), (53, 34): ElementMapping( - element=ElementType.SOLAR_THERMALS, + elementType=ElementType.SOLAR_THERMALS, aspect_type=AspectType.PRESENCE, ), (53, 44): ElementMapping( - element=ElementType.GARAGE_STRUCTURE, + elementType=ElementType.GARAGE_STRUCTURE, aspect_type=AspectType.TYPE, ), (53, 45): ElementMapping( - element=ElementType.BALCONY_BALUSTRADE, + elementType=ElementType.BALCONY_BALUSTRADE, aspect_type=AspectType.MATERIAL, ), (150, 1): ElementMapping( - element=ElementType.BLOCK_ENTRANCE_DOOR, + elementType=ElementType.BLOCK_ENTRANCE_DOOR, aspect_type=AspectType.MATERIAL, ), (150, 2): ElementMapping( - element=ElementType.PATHS_AND_HARDSTANDINGS, + elementType=ElementType.PATHS_AND_HARDSTANDINGS, aspect_type=AspectType.MATERIAL, ), # Duplicate of (53, 18) - correct? (150, 3): ElementMapping( - element=ElementType.ROADS, + elementType=ElementType.ROADS, aspect_type=AspectType.MATERIAL, ), (150, 4): ElementMapping( - element=ElementType.BOUNDARY_WALLS, + elementType=ElementType.BOUNDARY_WALLS, aspect_type=AspectType.MATERIAL, ), (150, 5): ElementMapping( - element=ElementType.OUTBUILDINGS, + elementType=ElementType.OUTBUILDINGS, aspect_type=AspectType.TYPE, ), (150, 6): ElementMapping( - element=ElementType.GARAGE_STRUCTURE, + elementType=ElementType.GARAGE_STRUCTURE, aspect_type=AspectType.TYPE, ), # ========================================================== # INTERNAL – BATHROOMS & KITCHENS # ========================================================== (50, 1): ElementMapping( - element=ElementType.SECONDARY_TOILET, + elementType=ElementType.SECONDARY_TOILET, aspect_type=AspectType.PRESENCE, ), (50, 9): ElementMapping( - element=ElementType.BATHROOM_EXTRACTOR_FAN, + elementType=ElementType.BATHROOM_EXTRACTOR_FAN, aspect_type=AspectType.PRESENCE, ), (50, 9): ElementMapping( - element=ElementType.KITCHEN, + elementType=ElementType.KITCHEN, aspect_type=AspectType.TYPE, ), (50, 10): ElementMapping( - element=ElementType.KITCHEN_EXTRACTOR_FAN, + elementType=ElementType.KITCHEN_EXTRACTOR_FAN, aspect_type=AspectType.PRESENCE, ), (50, 13): ElementMapping( - element=ElementType.KITCHEN_SPACE_LAYOUT, + elementType=ElementType.KITCHEN_SPACE_LAYOUT, aspect_type=AspectType.ADEQUACY, ), (50, 14): ElementMapping( - element=ElementType.KITCHEN, + elementType=ElementType.KITCHEN, aspect_type=AspectType.TYPE, ), (50, 17): ElementMapping( - element=ElementType.BATHROOM, + elementType=ElementType.BATHROOM, aspect_type=AspectType.LOCATION, ), (50, 18): ElementMapping( - element=ElementType.BATHROOM, + elementType=ElementType.BATHROOM, aspect_type=AspectType.TYPE, ), # Actually "Primary bathroom type" - ok like this? (50, 20): ElementMapping( - element=ElementType.BATHROOM, + elementType=ElementType.BATHROOM, aspect_type=AspectType.TYPE, element_instance=2, ), # Actually "Secondary bathroom type" - ok like this? (160, 1): ElementMapping( - element=ElementType.KITCHEN, + elementType=ElementType.KITCHEN, aspect_type=AspectType.CONDITION, ), (160, 2): ElementMapping( - element=ElementType.KITCHEN_SPACE_LAYOUT, + elementType=ElementType.KITCHEN_SPACE_LAYOUT, aspect_type=AspectType.ADEQUACY, ), (190, 1): ElementMapping( - element=ElementType.BATHROOM, + elementType=ElementType.BATHROOM, aspect_type=AspectType.CONDITION, ), (190, 2): ElementMapping( - element=ElementType.SECONDARY_TOILET, + elementType=ElementType.SECONDARY_TOILET, aspect_type=AspectType.TYPE, ), # ========================================================== # COMMUNAL # ========================================================== (51, 1): ElementMapping( - element=ElementType.COMMUNAL_AERIAL, + elementType=ElementType.COMMUNAL_AERIAL, aspect_type=AspectType.PRESENCE, ), (51, 2): ElementMapping( - element=ElementType.COMMUNAL_AOV, + elementType=ElementType.COMMUNAL_AOV, aspect_type=AspectType.PRESENCE, ), (51, 3): ElementMapping( - element=ElementType.COMMUNAL_BALCONY_WALKWAY, + elementType=ElementType.COMMUNAL_BALCONY_WALKWAY, aspect_type=AspectType.PRESENCE, ), (51, 4): ElementMapping( - element=ElementType.COMMUNAL_BATHROOM, + elementType=ElementType.COMMUNAL_BATHROOM, aspect_type=AspectType.TYPE, ), (51, 5): ElementMapping( - element=ElementType.COMMUNAL_BIN_STORE_DOORS, + elementType=ElementType.COMMUNAL_BIN_STORE_DOORS, aspect_type=AspectType.PRESENCE, ), (51, 6): ElementMapping( - element=ElementType.COMMUNAL_BIN_STORE_ROOF, + elementType=ElementType.COMMUNAL_BIN_STORE_ROOF, aspect_type=AspectType.PRESENCE, ), (51, 7): ElementMapping( - element=ElementType.COMMUNAL_BIN_STORE_WALLS, + elementType=ElementType.COMMUNAL_BIN_STORE_WALLS, aspect_type=AspectType.MATERIAL, ), (51, 8): ElementMapping( - element=ElementType.COMMUNAL_BMS, + elementType=ElementType.COMMUNAL_BMS, aspect_type=AspectType.PRESENCE, ), (51, 9): ElementMapping( - element=ElementType.COMMUNAL_BOILER, + elementType=ElementType.COMMUNAL_BOILER, aspect_type=AspectType.TYPE, ), (51, 10): ElementMapping( - element=ElementType.COMMUNAL_BOOSTER_PUMP, + elementType=ElementType.COMMUNAL_BOOSTER_PUMP, aspect_type=AspectType.PRESENCE, ), (51, 11): ElementMapping( - element=ElementType.COMMUNAL_CCTV, + elementType=ElementType.COMMUNAL_CCTV, aspect_type=AspectType.PRESENCE, ), (51, 12): ElementMapping( - element=ElementType.COMMUNAL_CIRCULATION_SPACE, + elementType=ElementType.COMMUNAL_CIRCULATION_SPACE, aspect_type=AspectType.ADEQUACY, ), (51, 13): ElementMapping( - element=ElementType.COMMUNAL_COLD_WATER_STORAGE, + elementType=ElementType.COMMUNAL_COLD_WATER_STORAGE, aspect_type=AspectType.PRESENCE, ), (51, 14): ElementMapping( - element=ElementType.COMMUNAL_DOOR_ENTRY, + elementType=ElementType.COMMUNAL_DOOR_ENTRY, aspect_type=AspectType.SYSTEM, ), (51, 15): ElementMapping( - element=ElementType.COMMUNAL_DRY_RISER, + elementType=ElementType.COMMUNAL_DRY_RISER, aspect_type=AspectType.PRESENCE, ), (51, 16): ElementMapping( - element=ElementType.COMMUNAL_EMERGENCY_LIGHTING, + elementType=ElementType.COMMUNAL_EMERGENCY_LIGHTING, aspect_type=AspectType.PRESENCE, ), (51, 17): ElementMapping( - element=ElementType.COMMUNAL_EXTERNAL_DOORS, + elementType=ElementType.COMMUNAL_EXTERNAL_DOORS, aspect_type=AspectType.MATERIAL, ), (51, 19): ElementMapping( - element=ElementType.COMMUNAL_FIRE_ALARM, + elementType=ElementType.COMMUNAL_FIRE_ALARM, aspect_type=AspectType.TYPE, ), (51, 20): ElementMapping( - element=ElementType.COMMUNAL_INTERNAL_DECORATIONS, + elementType=ElementType.COMMUNAL_INTERNAL_DECORATIONS, aspect_type=AspectType.PRESENCE, ), (51, 21): ElementMapping( - element=ElementType.COMMUNAL_INTERNAL_DOORS, + elementType=ElementType.COMMUNAL_INTERNAL_DOORS, aspect_type=AspectType.MATERIAL, ), (51, 22): ElementMapping( - element=ElementType.COMMUNAL_INTERNAL_FLOOR, + elementType=ElementType.COMMUNAL_INTERNAL_FLOOR, aspect_type=AspectType.FINISH, ), (51, 23): ElementMapping( - element=ElementType.COMMUNAL_KITCHEN, + elementType=ElementType.COMMUNAL_KITCHEN, aspect_type=AspectType.TYPE, ), (51, 24): ElementMapping( - element=ElementType.COMMUNAL_LATERAL_MAINS, + elementType=ElementType.COMMUNAL_LATERAL_MAINS, aspect_type=AspectType.PRESENCE, ), (51, 25): ElementMapping( - element=ElementType.COMMUNAL_LIGHTING, + elementType=ElementType.COMMUNAL_LIGHTING, aspect_type=AspectType.PRESENCE, ), (51, 26): ElementMapping( - element=ElementType.COMMUNAL_LIGHTING_CONDUCTOR, + elementType=ElementType.COMMUNAL_LIGHTING_CONDUCTOR, aspect_type=AspectType.PRESENCE, ), (51, 27): ElementMapping( - element=ElementType.COMMUNAL_PASSENGER_LIFT, + elementType=ElementType.COMMUNAL_PASSENGER_LIFT, aspect_type=AspectType.TYPE, ), (51, 28): ElementMapping( - element=ElementType.COMMUNAL_ENTRANCE, + elementType=ElementType.COMMUNAL_ENTRANCE, aspect_type=AspectType.MATERIAL, element_instance=1, ), (51, 30): ElementMapping( - element=ElementType.COMMUNAL_ENTRANCE, + elementType=ElementType.COMMUNAL_ENTRANCE, aspect_type=AspectType.FINISH, element_instance=2, ), (51, 31): ElementMapping( - element=ElementType.COMMUNAL_SPRINKLER, + elementType=ElementType.COMMUNAL_SPRINKLER, aspect_type=AspectType.PRESENCE, ), (51, 29): ElementMapping( - element=ElementType.COMMUNAL_REFUSE_CHUTE, + elementType=ElementType.COMMUNAL_REFUSE_CHUTE, aspect_type=AspectType.PRESENCE, ), (51, 32): ElementMapping( - element=ElementType.COMMUNAL_STAIRS, + elementType=ElementType.COMMUNAL_STAIRS, aspect_type=AspectType.FINISH, ), (51, 33): ElementMapping( - element=ElementType.COMMUNAL_STORE_DOORS, + elementType=ElementType.COMMUNAL_STORE_DOORS, aspect_type=AspectType.MATERIAL, ), (51, 34): ElementMapping( - element=ElementType.COMMUNAL_STORE_ROOF, + elementType=ElementType.COMMUNAL_STORE_ROOF, aspect_type=AspectType.MATERIAL, ), (51, 35): ElementMapping( - element=ElementType.COMMUNAL_STORE_WALLS, + elementType=ElementType.COMMUNAL_STORE_WALLS, aspect_type=AspectType.MATERIAL, ), (51, 36): ElementMapping( - element=ElementType.COMMUNAL_WALKWAYS, + elementType=ElementType.COMMUNAL_WALKWAYS, aspect_type=AspectType.FINISH, ), (51, 37): ElementMapping( - element=ElementType.COMMUNAL_WARDEN_CALL_SYSTEM, + elementType=ElementType.COMMUNAL_WARDEN_CALL_SYSTEM, aspect_type=AspectType.PRESENCE, ), (51, 38): ElementMapping( - element=ElementType.COMMUNAL_TOILETS, + elementType=ElementType.COMMUNAL_TOILETS, aspect_type=AspectType.TYPE, ), (51, 39): ElementMapping( - element=ElementType.COMMUNAL_WET_RISER, + elementType=ElementType.COMMUNAL_WET_RISER, aspect_type=AspectType.PRESENCE, ), (51, 40): ElementMapping( - element=ElementType.COMMUNAL_PLUG_SOCKETS, + elementType=ElementType.COMMUNAL_PLUG_SOCKETS, aspect_type=AspectType.PRESENCE, ), (200, 1): ElementMapping( - element=ElementType.COMMUNAL_BOILER, + elementType=ElementType.COMMUNAL_BOILER, aspect_type=AspectType.TYPE, ), # Duplicate of (51, 9) - correct? (200, 2): ElementMapping( - element=ElementType.COMMUNAL_HEATING, + elementType=ElementType.COMMUNAL_HEATING, aspect_type=AspectType.TYPE, ), (200, 3): ElementMapping( - element=ElementType.COMMUNAL_ELECTRICS, + elementType=ElementType.COMMUNAL_ELECTRICS, aspect_type=AspectType.TYPE, ), (200, 4): ElementMapping( - element=ElementType.COMMUNAL_FIRE_ALARM, + elementType=ElementType.COMMUNAL_FIRE_ALARM, aspect_type=AspectType.TYPE, ), (200, 5): ElementMapping( - element=ElementType.COMMUNAL_LIFT, + elementType=ElementType.COMMUNAL_LIFT, aspect_type=AspectType.TYPE, ), (200, 6): ElementMapping( - element=ElementType.COMMUNAL_FLOOR_COVERING, + elementType=ElementType.COMMUNAL_FLOOR_COVERING, aspect_type=AspectType.MATERIAL, ), (200, 7): ElementMapping( - element=ElementType.COMMUNAL_KITCHEN, + elementType=ElementType.COMMUNAL_KITCHEN, aspect_type=AspectType.TYPE, ), (200, 8): ElementMapping( - element=ElementType.COMMUNAL_BATHROOM, + elementType=ElementType.COMMUNAL_BATHROOM, aspect_type=AspectType.TYPE, ), # Duplicate of (51, 4) - correct? (200, 9): ElementMapping( - element=ElementType.COMMUNAL_TOILETS, + elementType=ElementType.COMMUNAL_TOILETS, aspect_type=AspectType.TYPE, ), # Duplicate of (51, 38) - correct? (200, 10): ElementMapping( - element=ElementType.COMMUNAL_GATES, + elementType=ElementType.COMMUNAL_GATES, aspect_type=AspectType.TYPE, ), # ========================================================== # INTERNAL – HEATING # ========================================================== (50, 4): ElementMapping( - element=ElementType.HEATING_BOILER, + elementType=ElementType.HEATING_BOILER, aspect_type=AspectType.PRESENCE, ), # This is actually "Central heating boiler" - ok like this? (50, 5): ElementMapping( - element=ElementType.CENTRAL_HEATING, + elementType=ElementType.CENTRAL_HEATING, aspect_type=AspectType.EXTENT, ), (50, 6): ElementMapping( - element=ElementType.COLD_WATER_STORAGE, + elementType=ElementType.COLD_WATER_STORAGE, aspect_type=AspectType.PRESENCE, ), (50, 12): ElementMapping( - element=ElementType.HEATING_DISTRIBUTION, + elementType=ElementType.HEATING_DISTRIBUTION, aspect_type=AspectType.TYPE, ), (50, 19): ElementMapping( - element=ElementType.PROGRAMMABLE_HEATING, + elementType=ElementType.PROGRAMMABLE_HEATING, aspect_type=AspectType.TYPE, ), (50, 25): ElementMapping( - element=ElementType.HEATING_BOILER, + elementType=ElementType.HEATING_BOILER, aspect_type=AspectType.TYPE, ), (170, 1): ElementMapping( - element=ElementType.HEATING_BOILER, + elementType=ElementType.HEATING_BOILER, aspect_type=AspectType.TYPE, ), # Duplicate of (50,25) - correct? (170, 2): ElementMapping( - element=ElementType.HEATING_DISTRIBUTION, + elementType=ElementType.HEATING_DISTRIBUTION, aspect_type=AspectType.TYPE, ), # Duplicate of (50,12) - correct? (170, 3): ElementMapping( - element=ElementType.SECONDARY_HEATING, + elementType=ElementType.SECONDARY_HEATING, aspect_type=AspectType.TYPE, ), (170, 4): ElementMapping( - element=ElementType.COLD_WATER_STORAGE, + elementType=ElementType.COLD_WATER_STORAGE, aspect_type=AspectType.TYPE, ), (170, 5): ElementMapping( - element=ElementType.HOT_WATER_SYSTEM, + elementType=ElementType.HOT_WATER_SYSTEM, aspect_type=AspectType.TYPE, ), # ========================================================== # ELECTRICS # ========================================================== (50, 24): ElementMapping( - element=ElementType.INTERNAL_WIRING, + elementType=ElementType.INTERNAL_WIRING, aspect_type=AspectType.MATERIAL, ), (180, 1): ElementMapping( - element=ElementType.ELECTRICAL_WIRING, + 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( - element=ElementType.CONSUMER_UNIT, + elementType=ElementType.CONSUMER_UNIT, aspect_type=AspectType.TYPE, ), (180, 3): ElementMapping( - element=ElementType.SMOKE_DETECTION, + elementType=ElementType.SMOKE_DETECTION, aspect_type=AspectType.TYPE, ), # Duplicate of (50, 21) - correct? (180, 4): ElementMapping( - element=ElementType.CARBON_MONOXIDE_DETECTION, + elementType=ElementType.CARBON_MONOXIDE_DETECTION, aspect_type=AspectType.TYPE, ), # Duplicate of (50, 2) - correct? # ========================================================== # HHSRS # ========================================================== (54, 1): ElementMapping( - element=ElementType.HHSRS_DAMP_AND_MOULD, + elementType=ElementType.HHSRS_DAMP_AND_MOULD, aspect_type=AspectType.RISK, ), (54, 4): ElementMapping( - element=ElementType.HHSRS_ASBESTOS_AND_MMF, + elementType=ElementType.HHSRS_ASBESTOS_AND_MMF, aspect_type=AspectType.RISK, ), (54, 15): ElementMapping( - element=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE, + elementType=ElementType.HHSRS_DOMESTIC_HYGIENE_PESTS_REFUSE, aspect_type=AspectType.RISK, ), (54, 29): ElementMapping( - element=ElementType.HHSRS_STRUCTURAL_COLLAPSE, + elementType=ElementType.HHSRS_STRUCTURAL_COLLAPSE, aspect_type=AspectType.RISK, ), } diff --git a/backend/condition/domain/mapping/peabody/peabody_mapper.py b/backend/condition/domain/mapping/peabody/peabody_mapper.py index 184b2898..92f1687f 100644 --- a/backend/condition/domain/mapping/peabody/peabody_mapper.py +++ b/backend/condition/domain/mapping/peabody/peabody_mapper.py @@ -37,7 +37,7 @@ class PeabodyMapper(Mapper): ) element_key = ( - element_mapping.element, + element_mapping.elementType, element_mapping.element_instance or 1, )