diff --git a/backend/condition/handler/Dockerfile b/applications/condition/Dockerfile similarity index 100% rename from backend/condition/handler/Dockerfile rename to applications/condition/Dockerfile diff --git a/backend/condition/README.md b/applications/condition/README.md similarity index 100% rename from backend/condition/README.md rename to applications/condition/README.md diff --git a/backend/condition/__init__.py b/applications/condition/__init__.py similarity index 100% rename from backend/condition/__init__.py rename to applications/condition/__init__.py diff --git a/backend/condition/condition_trigger_request.py b/applications/condition/condition_trigger_request.py similarity index 100% rename from backend/condition/condition_trigger_request.py rename to applications/condition/condition_trigger_request.py diff --git a/backend/condition/parsing/factory.py b/applications/condition/factory.py similarity index 61% rename from backend/condition/parsing/factory.py rename to applications/condition/factory.py index b5d28e185..0a06811de 100644 --- a/backend/condition/parsing/factory.py +++ b/applications/condition/factory.py @@ -1,12 +1,12 @@ from typing import Optional -from backend.condition.condition_trigger_request import ConditionFileType -from backend.condition.domain.mapping.lbwf.lbwf_mapper import LbwfMapper -from backend.condition.domain.mapping.mapper import Mapper -from backend.condition.domain.mapping.peabody.peabody_mapper import PeabodyMapper -from backend.condition.lookups.uprn_lookup import UprnLookup -from backend.condition.parsing.parser import Parser -from backend.condition.parsing.lbwf_parser import LbwfParser -from backend.condition.parsing.peabody_parser import PeabodyParser +from applications.condition.condition_trigger_request import ConditionFileType +from domain.condition.mapping.lbwf.lbwf_mapper import LbwfMapper +from domain.condition.mapping.mapper import Mapper +from domain.condition.mapping.peabody.peabody_mapper import PeabodyMapper +from repositories.condition.uprn_lookup import UprnLookup +from infrastructure.condition.parsing.parser import Parser +from infrastructure.condition.parsing.lbwf_parser import LbwfParser +from infrastructure.condition.parsing.peabody_parser import PeabodyParser def select_parser( diff --git a/backend/condition/handler/handler.py b/applications/condition/handler.py similarity index 88% rename from backend/condition/handler/handler.py rename to applications/condition/handler.py index 2f3616a4c..71db0a90b 100644 --- a/backend/condition/handler/handler.py +++ b/applications/condition/handler.py @@ -2,9 +2,9 @@ import json from typing import Mapping, Any from io import BytesIO -from backend.condition.condition_trigger_request import ConditionTriggerRequest -from backend.condition.lookups.uprn_lookup_s3 import UprnLookupS3 -from backend.condition.processor import process_file +from applications.condition.condition_trigger_request import ConditionTriggerRequest +from infrastructure.condition.lookups.uprn_lookup_s3 import UprnLookupS3 +from applications.condition.processor import process_file from utils.logger import setup_logger from utils.s3 import read_io_from_s3 diff --git a/backend/condition/local_runner.py b/applications/condition/local_runner.py similarity index 86% rename from backend/condition/local_runner.py rename to applications/condition/local_runner.py index 4595b93b0..edce2501c 100644 --- a/backend/condition/local_runner.py +++ b/applications/condition/local_runner.py @@ -1,8 +1,8 @@ from pathlib import Path -from backend.condition.condition_trigger_request import ConditionFileType -from backend.condition.lookups.uprn_lookup_csv import UprnLookupLocal -from backend.condition.processor import process_file +from applications.condition.condition_trigger_request import ConditionFileType +from infrastructure.condition.lookups.uprn_lookup_csv import UprnLookupLocal +from applications.condition.processor import process_file def main() -> None: diff --git a/backend/condition/processor.py b/applications/condition/processor.py similarity index 73% rename from backend/condition/processor.py rename to applications/condition/processor.py index ad5b42327..daefaeb3e 100644 --- a/backend/condition/processor.py +++ b/applications/condition/processor.py @@ -1,14 +1,14 @@ from typing import Any, BinaryIO, List, Optional from datetime import datetime -from backend.condition.condition_trigger_request import ConditionFileType -from backend.condition.lookups.uprn_lookup import UprnLookup +from applications.condition.condition_trigger_request import ConditionFileType +from repositories.condition.uprn_lookup import UprnLookup from utils.logger import setup_logger -from backend.condition.domain.mapping.mapper import Mapper -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey -from backend.condition.parsing.parser import Parser -from backend.condition.persistence.condition_postgres import ConditionPostgres -from backend.condition.parsing.factory import select_parser, select_mapper +from domain.condition.mapping.mapper import Mapper +from domain.condition.property_condition_survey import PropertyConditionSurvey +from infrastructure.condition.parsing.parser import Parser +from repositories.condition.condition_postgres import ConditionPostgres +from applications.condition.factory import select_parser, select_mapper logger = setup_logger() diff --git a/backend/condition/handler/requirements.txt b/applications/condition/requirements.txt similarity index 100% rename from backend/condition/handler/requirements.txt rename to applications/condition/requirements.txt diff --git a/backend/app/db/functions/condition_functions.py b/backend/app/db/functions/condition_functions.py index d281b9a4b..fc62eda0b 100644 --- a/backend/app/db/functions/condition_functions.py +++ b/backend/app/db/functions/condition_functions.py @@ -3,7 +3,7 @@ from sqlalchemy import insert, delete from sqlalchemy.orm import Session from backend.app.db.connection import db_session, db_read_session -from backend.app.db.models.condition import PropertyConditionSurveyModel +from infrastructure.postgres.condition_tables import PropertyConditionSurveyModel def bulk_insert_property_surveys( diff --git a/docs/adr/0064-stock-condition-data-is-engine-isolated-and-fe-consumed.md b/docs/adr/0064-stock-condition-data-is-engine-isolated-and-fe-consumed.md index 43fdaf102..62e706dc6 100644 --- a/docs/adr/0064-stock-condition-data-is-engine-isolated-and-fe-consumed.md +++ b/docs/adr/0064-stock-condition-data-is-engine-isolated-and-fe-consumed.md @@ -91,7 +91,14 @@ solar is a front-end presentation overlay, not an engine output.** orchestration) as a full lift-and-shift — shared core, the Peabody and LBWF adapters, and the delivery path — with Calico added as a new adapter alongside them. Peabody/LBWF keep their Lambda after the move; the relocation is - behaviour-preserving for them. + behaviour-preserving for them. **The move is deliberately relocation-only:** the + ORM models stay SQLAlchemy-declarative and `ConditionPostgres` keeps the legacy + `backend.app.db` `Base` / `db_session` bridges, so the existing test suite proves + behaviour is unchanged. Converting the tables to SQLModel and the repository to + constructor session-injection (matching the rest of `infrastructure/postgres`), + and clearing the module's pre-existing pyright-strict debt, are tracked + follow-ups to run where a database is available to verify them — not bundled into + the move. - A new `Calico` `ConditionFileType`, parser + row DTO, roof-covering element map (`"Roof Covering"` → roof `ElementType`, `MATERIAL` aspect = `Type`), and mapper are added and registered in the factory. Roof covering is already a modelled diff --git a/domain/condition/__init__.py b/domain/condition/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/domain/aspect_condition.py b/domain/condition/aspect_condition.py similarity index 85% rename from backend/condition/domain/aspect_condition.py rename to domain/condition/aspect_condition.py index 75b46b09e..b768ff483 100644 --- a/backend/condition/domain/aspect_condition.py +++ b/domain/condition/aspect_condition.py @@ -2,7 +2,7 @@ from dataclasses import dataclass from typing import Optional from datetime import date -from backend.condition.domain.aspect_type import AspectType +from domain.condition.aspect_type import AspectType @dataclass diff --git a/backend/condition/domain/aspect_type.py b/domain/condition/aspect_type.py similarity index 100% rename from backend/condition/domain/aspect_type.py rename to domain/condition/aspect_type.py diff --git a/backend/condition/domain/element.py b/domain/condition/element.py similarity index 58% rename from backend/condition/domain/element.py rename to domain/condition/element.py index 4a154815b..78a51cf99 100644 --- a/backend/condition/domain/element.py +++ b/domain/condition/element.py @@ -1,8 +1,8 @@ from dataclasses import dataclass from typing import List -from backend.condition.domain.aspect_condition import AspectCondition -from backend.condition.domain.element_type import ElementType +from domain.condition.aspect_condition import AspectCondition +from domain.condition.element_type import ElementType @dataclass diff --git a/backend/condition/domain/element_type.py b/domain/condition/element_type.py similarity index 100% rename from backend/condition/domain/element_type.py rename to domain/condition/element_type.py diff --git a/domain/condition/mapping/__init__.py b/domain/condition/mapping/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/domain/mapping/element_mapping.py b/domain/condition/mapping/element_mapping.py similarity index 67% rename from backend/condition/domain/mapping/element_mapping.py rename to domain/condition/mapping/element_mapping.py index 95fd08b9f..ead1a8d21 100644 --- a/backend/condition/domain/mapping/element_mapping.py +++ b/domain/condition/mapping/element_mapping.py @@ -1,8 +1,8 @@ from dataclasses import dataclass from typing import Optional -from backend.condition.domain.aspect_type import AspectType -from backend.condition.domain.element_type import ElementType +from domain.condition.aspect_type import AspectType +from domain.condition.element_type import ElementType @dataclass(frozen=True) diff --git a/domain/condition/mapping/lbwf/__init__.py b/domain/condition/mapping/lbwf/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/domain/mapping/lbwf/lbwf_element_map.py b/domain/condition/mapping/lbwf/lbwf_element_map.py similarity index 98% rename from backend/condition/domain/mapping/lbwf/lbwf_element_map.py rename to domain/condition/mapping/lbwf/lbwf_element_map.py index bf54c5bbe..609c6d1ab 100644 --- a/backend/condition/domain/mapping/lbwf/lbwf_element_map.py +++ b/domain/condition/mapping/lbwf/lbwf_element_map.py @@ -1,6 +1,6 @@ -from backend.condition.domain.element_type import ElementType -from backend.condition.domain.aspect_type import AspectType -from backend.condition.domain.mapping.element_mapping import ElementMapping +from domain.condition.element_type import ElementType +from domain.condition.aspect_type import AspectType +from domain.condition.mapping.element_mapping import ElementMapping LBWF_ELEMENT_MAP: dict[str, ElementMapping] = { diff --git a/backend/condition/domain/mapping/lbwf/lbwf_mapper.py b/domain/condition/mapping/lbwf/lbwf_mapper.py similarity index 86% rename from backend/condition/domain/mapping/lbwf/lbwf_mapper.py rename to domain/condition/mapping/lbwf/lbwf_mapper.py index 9dbfcb17a..524a9960e 100644 --- a/backend/condition/domain/mapping/lbwf/lbwf_mapper.py +++ b/domain/condition/mapping/lbwf/lbwf_mapper.py @@ -1,17 +1,17 @@ from typing import Any, Dict, Optional, Tuple from datetime import date -from backend.condition.domain.aspect_condition import AspectCondition -from backend.condition.domain.element import Element -from backend.condition.domain.element_type import ElementType -from backend.condition.domain.mapping.element_mapping import ElementMapping -from backend.condition.domain.mapping.lbwf.lbwf_element_map import LBWF_ELEMENT_MAP -from backend.condition.domain.mapping.mapper import Mapper -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey -from backend.condition.parsing.records.lbwf.lbwf_asset_condition import ( +from domain.condition.aspect_condition import AspectCondition +from domain.condition.element import Element +from domain.condition.element_type import ElementType +from domain.condition.mapping.element_mapping import ElementMapping +from domain.condition.mapping.lbwf.lbwf_element_map import LBWF_ELEMENT_MAP +from domain.condition.mapping.mapper import Mapper +from domain.condition.property_condition_survey import PropertyConditionSurvey +from domain.condition.records.lbwf.lbwf_asset_condition import ( LbwfAssetCondition, ) -from backend.condition.parsing.records.lbwf.lbwf_house import LbwfHouse +from domain.condition.records.lbwf.lbwf_house import LbwfHouse from utils.logger import setup_logger logger = setup_logger() diff --git a/backend/condition/domain/mapping/mapper.py b/domain/condition/mapping/mapper.py similarity index 70% rename from backend/condition/domain/mapping/mapper.py rename to domain/condition/mapping/mapper.py index 3479668a2..caf7f6e6c 100644 --- a/backend/condition/domain/mapping/mapper.py +++ b/domain/condition/mapping/mapper.py @@ -1,8 +1,8 @@ from abc import ABC, abstractmethod from typing import Any, List, Optional -from backend.condition.domain.element import Element -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey +from domain.condition.element import Element +from domain.condition.property_condition_survey import PropertyConditionSurvey class Mapper(ABC): diff --git a/domain/condition/mapping/peabody/__init__.py b/domain/condition/mapping/peabody/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/domain/mapping/peabody/peabody_element_map.py b/domain/condition/mapping/peabody/peabody_element_map.py similarity index 99% rename from backend/condition/domain/mapping/peabody/peabody_element_map.py rename to domain/condition/mapping/peabody/peabody_element_map.py index ce344b9a9..0ef943c40 100644 --- a/backend/condition/domain/mapping/peabody/peabody_element_map.py +++ b/domain/condition/mapping/peabody/peabody_element_map.py @@ -1,6 +1,6 @@ -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 +from domain.condition.aspect_type import AspectType +from domain.condition.element_type import ElementType +from domain.condition.mapping.element_mapping import ElementMapping PEABODY_ELEMENT_MAP = { diff --git a/backend/condition/domain/mapping/peabody/peabody_mapper.py b/domain/condition/mapping/peabody/peabody_mapper.py similarity index 83% rename from backend/condition/domain/mapping/peabody/peabody_mapper.py rename to domain/condition/mapping/peabody/peabody_mapper.py index 92f1687f8..a493b3c39 100644 --- a/backend/condition/domain/mapping/peabody/peabody_mapper.py +++ b/domain/condition/mapping/peabody/peabody_mapper.py @@ -1,19 +1,19 @@ from typing import Any, Dict, Optional, Tuple from datetime import date -from backend.condition.domain.aspect_condition import AspectCondition -from backend.condition.domain.element import Element -from backend.condition.domain.element_type import ElementType -from backend.condition.domain.mapping.element_mapping import ElementMapping -from backend.condition.domain.mapping.peabody.peabody_element_map import ( +from domain.condition.aspect_condition import AspectCondition +from domain.condition.element import Element +from domain.condition.element_type import ElementType +from domain.condition.mapping.element_mapping import ElementMapping +from domain.condition.mapping.peabody.peabody_element_map import ( PEABODY_ELEMENT_MAP, ) -from backend.condition.domain.mapping.mapper import Mapper -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey -from backend.condition.parsing.records.peabody.peabody_asset_condition import ( +from domain.condition.mapping.mapper import Mapper +from domain.condition.property_condition_survey import PropertyConditionSurvey +from domain.condition.records.peabody.peabody_asset_condition import ( PeabodyAssetCondition, ) -from backend.condition.parsing.records.peabody.peabody_property import PeabodyProperty +from domain.condition.records.peabody.peabody_property import PeabodyProperty from utils.logger import setup_logger logger = setup_logger() diff --git a/backend/condition/domain/property_condition_survey.py b/domain/condition/property_condition_survey.py similarity index 80% rename from backend/condition/domain/property_condition_survey.py rename to domain/condition/property_condition_survey.py index 6955e5faa..1a3491ba2 100644 --- a/backend/condition/domain/property_condition_survey.py +++ b/domain/condition/property_condition_survey.py @@ -2,7 +2,7 @@ from dataclasses import dataclass from typing import List from datetime import date -from backend.condition.domain.element import Element +from domain.condition.element import Element @dataclass diff --git a/domain/condition/records/__init__.py b/domain/condition/records/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/domain/condition/records/lbwf/__init__.py b/domain/condition/records/lbwf/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/parsing/records/lbwf/lbwf_asset_condition.py b/domain/condition/records/lbwf/lbwf_asset_condition.py similarity index 100% rename from backend/condition/parsing/records/lbwf/lbwf_asset_condition.py rename to domain/condition/records/lbwf/lbwf_asset_condition.py diff --git a/backend/condition/parsing/records/lbwf/lbwf_house.py b/domain/condition/records/lbwf/lbwf_house.py similarity index 73% rename from backend/condition/parsing/records/lbwf/lbwf_house.py rename to domain/condition/records/lbwf/lbwf_house.py index 3b472fbec..4c8a10e69 100644 --- a/backend/condition/parsing/records/lbwf/lbwf_house.py +++ b/domain/condition/records/lbwf/lbwf_house.py @@ -1,7 +1,7 @@ from dataclasses import dataclass from typing import List -from backend.condition.parsing.records.lbwf.lbwf_asset_condition import LbwfAssetCondition +from domain.condition.records.lbwf.lbwf_asset_condition import LbwfAssetCondition @dataclass class LbwfHouse: diff --git a/domain/condition/records/peabody/__init__.py b/domain/condition/records/peabody/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/parsing/records/peabody/peabody_asset_condition.py b/domain/condition/records/peabody/peabody_asset_condition.py similarity index 100% rename from backend/condition/parsing/records/peabody/peabody_asset_condition.py rename to domain/condition/records/peabody/peabody_asset_condition.py diff --git a/backend/condition/parsing/records/peabody/peabody_property.py b/domain/condition/records/peabody/peabody_property.py similarity index 74% rename from backend/condition/parsing/records/peabody/peabody_property.py rename to domain/condition/records/peabody/peabody_property.py index bfa6b65b4..49f11045a 100644 --- a/backend/condition/parsing/records/peabody/peabody_property.py +++ b/domain/condition/records/peabody/peabody_property.py @@ -1,7 +1,7 @@ from dataclasses import dataclass from typing import List -from backend.condition.parsing.records.peabody.peabody_asset_condition import PeabodyAssetCondition +from domain.condition.records.peabody.peabody_asset_condition import PeabodyAssetCondition @dataclass class PeabodyProperty: diff --git a/infrastructure/condition/__init__.py b/infrastructure/condition/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/utils/date_utils.py b/infrastructure/condition/date_utils.py similarity index 100% rename from backend/condition/utils/date_utils.py rename to infrastructure/condition/date_utils.py diff --git a/infrastructure/condition/lookups/__init__.py b/infrastructure/condition/lookups/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/lookups/uprn_lookup_csv.py b/infrastructure/condition/lookups/uprn_lookup_csv.py similarity index 92% rename from backend/condition/lookups/uprn_lookup_csv.py rename to infrastructure/condition/lookups/uprn_lookup_csv.py index 8b1c21a2c..e4cc7a9d3 100644 --- a/backend/condition/lookups/uprn_lookup_csv.py +++ b/infrastructure/condition/lookups/uprn_lookup_csv.py @@ -1,7 +1,7 @@ import csv from io import TextIOWrapper from typing import BinaryIO, Dict, TextIO -from backend.condition.lookups.uprn_lookup import UprnLookup +from repositories.condition.uprn_lookup import UprnLookup class UprnLookupLocal(UprnLookup): diff --git a/backend/condition/lookups/uprn_lookup_s3.py b/infrastructure/condition/lookups/uprn_lookup_s3.py similarity index 93% rename from backend/condition/lookups/uprn_lookup_s3.py rename to infrastructure/condition/lookups/uprn_lookup_s3.py index da725a2fc..b43033145 100644 --- a/backend/condition/lookups/uprn_lookup_s3.py +++ b/infrastructure/condition/lookups/uprn_lookup_s3.py @@ -2,7 +2,7 @@ import csv from io import BytesIO, TextIOWrapper from typing import BinaryIO, Dict, TextIO -from backend.condition.lookups.uprn_lookup import UprnLookup +from repositories.condition.uprn_lookup import UprnLookup from utils.s3 import read_io_from_s3 diff --git a/infrastructure/condition/parsing/__init__.py b/infrastructure/condition/parsing/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/parsing/lbwf_parser.py b/infrastructure/condition/parsing/lbwf_parser.py similarity index 96% rename from backend/condition/parsing/lbwf_parser.py rename to infrastructure/condition/parsing/lbwf_parser.py index a713b1ef2..a83ef5b78 100644 --- a/backend/condition/parsing/lbwf_parser.py +++ b/infrastructure/condition/parsing/lbwf_parser.py @@ -2,12 +2,12 @@ from typing import BinaryIO, Any, Dict, Iterator, List, Optional, Tuple from openpyxl import Workbook, load_workbook from collections import defaultdict -from backend.condition.parsing.parser import Parser -from backend.condition.parsing.records.lbwf.lbwf_asset_condition import ( +from infrastructure.condition.parsing.parser import Parser +from domain.condition.records.lbwf.lbwf_asset_condition import ( LbwfAssetCondition, ) -from backend.condition.parsing.records.lbwf.lbwf_house import LbwfHouse -from backend.condition.utils.date_utils import normalise_date +from domain.condition.records.lbwf.lbwf_house import LbwfHouse +from infrastructure.condition.date_utils import normalise_date from utils.logger import setup_logger logger = setup_logger() diff --git a/backend/condition/parsing/parser.py b/infrastructure/condition/parsing/parser.py similarity index 100% rename from backend/condition/parsing/parser.py rename to infrastructure/condition/parsing/parser.py diff --git a/backend/condition/parsing/peabody_parser.py b/infrastructure/condition/parsing/peabody_parser.py similarity index 94% rename from backend/condition/parsing/peabody_parser.py rename to infrastructure/condition/parsing/peabody_parser.py index 4620ba82c..e5b090d4d 100644 --- a/backend/condition/parsing/peabody_parser.py +++ b/infrastructure/condition/parsing/peabody_parser.py @@ -4,12 +4,12 @@ from typing import Any, BinaryIO, Dict, List, Optional, Tuple, DefaultDict from openpyxl import Workbook, load_workbook from collections import defaultdict -from backend.condition.lookups.uprn_lookup import UprnLookup -from backend.condition.parsing.parser import Parser -from backend.condition.parsing.records.peabody.peabody_asset_condition import ( +from repositories.condition.uprn_lookup import UprnLookup +from infrastructure.condition.parsing.parser import Parser +from domain.condition.records.peabody.peabody_asset_condition import ( PeabodyAssetCondition, ) -from backend.condition.parsing.records.peabody.peabody_property import PeabodyProperty +from domain.condition.records.peabody.peabody_property import PeabodyProperty from utils.logger import setup_logger logger = setup_logger() diff --git a/backend/app/db/models/condition.py b/infrastructure/postgres/condition_tables.py similarity index 94% rename from backend/app/db/models/condition.py rename to infrastructure/postgres/condition_tables.py index 96f601a73..4cff70c52 100644 --- a/backend/app/db/models/condition.py +++ b/infrastructure/postgres/condition_tables.py @@ -9,8 +9,8 @@ from sqlalchemy import ( ) from sqlalchemy.orm import relationship -from backend.condition.domain.aspect_type import AspectType -from backend.condition.domain.element_type import ElementType +from domain.condition.aspect_type import AspectType +from domain.condition.element_type import ElementType from backend.app.db.base import Base diff --git a/repositories/condition/__init__.py b/repositories/condition/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/persistence/condition_postgres.py b/repositories/condition/condition_postgres.py similarity index 95% rename from backend/condition/persistence/condition_postgres.py rename to repositories/condition/condition_postgres.py index e83df5406..fb3533e35 100644 --- a/backend/condition/persistence/condition_postgres.py +++ b/repositories/condition/condition_postgres.py @@ -3,12 +3,12 @@ from typing import List, Optional from sqlmodel import Session from utils.logger import setup_logger -from backend.app.db.models.condition import ( +from infrastructure.postgres.condition_tables import ( AspectConditionModel, ElementModel, PropertyConditionSurveyModel, ) -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey +from domain.condition.property_condition_survey import PropertyConditionSurvey from backend.app.db.connection import db_session logger = setup_logger() diff --git a/backend/condition/lookups/uprn_lookup.py b/repositories/condition/uprn_lookup.py similarity index 100% rename from backend/condition/lookups/uprn_lookup.py rename to repositories/condition/uprn_lookup.py diff --git a/tests/condition/__init__.py b/tests/condition/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/tests/custom_asserts.py b/tests/condition/custom_asserts.py similarity index 96% rename from backend/condition/tests/custom_asserts.py rename to tests/condition/custom_asserts.py index 623dcf0cc..4749f1f9d 100644 --- a/backend/condition/tests/custom_asserts.py +++ b/tests/condition/custom_asserts.py @@ -1,5 +1,5 @@ -from backend.app.db.models.condition import PropertyConditionSurveyModel -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey +from infrastructure.postgres.condition_tables import PropertyConditionSurveyModel +from domain.condition.property_condition_survey import PropertyConditionSurvey class CustomAsserts: diff --git a/tests/condition/lookups/__init__.py b/tests/condition/lookups/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/tests/lookups/test_uprn_lookup_csv.py b/tests/condition/lookups/test_uprn_lookup_csv.py similarity index 91% rename from backend/condition/tests/lookups/test_uprn_lookup_csv.py rename to tests/condition/lookups/test_uprn_lookup_csv.py index d01c52c2f..d211d5eb8 100644 --- a/backend/condition/tests/lookups/test_uprn_lookup_csv.py +++ b/tests/condition/lookups/test_uprn_lookup_csv.py @@ -2,7 +2,7 @@ import pytest from typing import Dict from tempfile import NamedTemporaryFile -from backend.condition.lookups.uprn_lookup_csv import UprnLookupLocal +from infrastructure.condition.lookups.uprn_lookup_csv import UprnLookupLocal @pytest.fixture diff --git a/tests/condition/mapping/__init__.py b/tests/condition/mapping/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/tests/mapping/test_lbwf_mapper.py b/tests/condition/mapping/test_lbwf_mapper.py similarity index 95% rename from backend/condition/tests/mapping/test_lbwf_mapper.py rename to tests/condition/mapping/test_lbwf_mapper.py index 778901553..42c08c793 100644 --- a/backend/condition/tests/mapping/test_lbwf_mapper.py +++ b/tests/condition/mapping/test_lbwf_mapper.py @@ -1,16 +1,16 @@ from datetime import date -from backend.condition.domain.aspect_condition import AspectCondition -from backend.condition.domain.aspect_type import AspectType -from backend.condition.domain.element_type import ElementType -from backend.condition.domain.mapping.lbwf.lbwf_mapper import LbwfMapper -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey -from backend.condition.parsing.records.lbwf.lbwf_house import LbwfHouse -from backend.condition.parsing.records.lbwf.lbwf_asset_condition import ( +from domain.condition.aspect_condition import AspectCondition +from domain.condition.aspect_type import AspectType +from domain.condition.element_type import ElementType +from domain.condition.mapping.lbwf.lbwf_mapper import LbwfMapper +from domain.condition.property_condition_survey import PropertyConditionSurvey +from domain.condition.records.lbwf.lbwf_house import LbwfHouse +from domain.condition.records.lbwf.lbwf_asset_condition import ( LbwfAssetCondition, ) -from backend.condition.domain.element import Element -from backend.condition.tests.custom_asserts import CustomAsserts +from domain.condition.element import Element +from tests.condition.custom_asserts import CustomAsserts def test_lbwf_mapper_maps_house(): diff --git a/backend/condition/tests/mapping/test_peabody_mapper.py b/tests/condition/mapping/test_peabody_mapper.py similarity index 91% rename from backend/condition/tests/mapping/test_peabody_mapper.py rename to tests/condition/mapping/test_peabody_mapper.py index 979258b08..db70de2a8 100644 --- a/backend/condition/tests/mapping/test_peabody_mapper.py +++ b/tests/condition/mapping/test_peabody_mapper.py @@ -1,16 +1,16 @@ from datetime import datetime, date -from backend.condition.domain.aspect_condition import AspectCondition -from backend.condition.domain.aspect_type import AspectType -from backend.condition.domain.element_type import ElementType -from backend.condition.domain.mapping.peabody.peabody_mapper import PeabodyMapper -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey -from backend.condition.parsing.records.peabody.peabody_asset_condition import ( +from domain.condition.aspect_condition import AspectCondition +from domain.condition.aspect_type import AspectType +from domain.condition.element_type import ElementType +from domain.condition.mapping.peabody.peabody_mapper import PeabodyMapper +from domain.condition.property_condition_survey import PropertyConditionSurvey +from domain.condition.records.peabody.peabody_asset_condition import ( PeabodyAssetCondition, ) -from backend.condition.parsing.records.peabody.peabody_property import PeabodyProperty -from backend.condition.domain.element import Element -from backend.condition.tests.custom_asserts import CustomAsserts +from domain.condition.records.peabody.peabody_property import PeabodyProperty +from domain.condition.element import Element +from tests.condition.custom_asserts import CustomAsserts def test_peabody_mapper_maps_property(): diff --git a/tests/condition/parsing/__init__.py b/tests/condition/parsing/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/tests/parsing/test_lbwf_parser.py b/tests/condition/parsing/test_lbwf_parser.py similarity index 93% rename from backend/condition/tests/parsing/test_lbwf_parser.py rename to tests/condition/parsing/test_lbwf_parser.py index beb81a035..0b63161a1 100644 --- a/backend/condition/tests/parsing/test_lbwf_parser.py +++ b/tests/condition/parsing/test_lbwf_parser.py @@ -4,9 +4,9 @@ from io import BytesIO from openpyxl import Workbook from datetime import datetime -from backend.condition.parsing.lbwf_parser import LbwfParser -from backend.condition.parsing.records.lbwf.lbwf_asset_condition import LbwfAssetCondition -from backend.condition.parsing.records.lbwf.lbwf_house import LbwfHouse +from infrastructure.condition.parsing.lbwf_parser import LbwfParser +from domain.condition.records.lbwf.lbwf_asset_condition import LbwfAssetCondition +from domain.condition.records.lbwf.lbwf_house import LbwfHouse @pytest.fixture def lbwf_homes_xlsx_bytes() -> BytesIO: diff --git a/backend/condition/tests/parsing/test_parsing_factory.py b/tests/condition/parsing/test_parsing_factory.py similarity index 74% rename from backend/condition/tests/parsing/test_parsing_factory.py rename to tests/condition/parsing/test_parsing_factory.py index df01eaadc..f472f8c58 100644 --- a/backend/condition/tests/parsing/test_parsing_factory.py +++ b/tests/condition/parsing/test_parsing_factory.py @@ -1,8 +1,8 @@ import pytest -from backend.condition.condition_trigger_request import ConditionFileType -from backend.condition.lookups.uprn_lookup_csv import UprnLookupLocal -from backend.condition.parsing.factory import select_parser +from applications.condition.condition_trigger_request import ConditionFileType +from infrastructure.condition.lookups.uprn_lookup_csv import UprnLookupLocal +from applications.condition.factory import select_parser def test_selects_lbwf_parser(): diff --git a/backend/condition/tests/parsing/test_peabody_parser.py b/tests/condition/parsing/test_peabody_parser.py similarity index 94% rename from backend/condition/tests/parsing/test_peabody_parser.py rename to tests/condition/parsing/test_peabody_parser.py index 5fb422047..ac3fbd609 100644 --- a/backend/condition/tests/parsing/test_peabody_parser.py +++ b/tests/condition/parsing/test_peabody_parser.py @@ -5,12 +5,12 @@ from io import BytesIO from openpyxl import Workbook from datetime import datetime -from backend.condition.lookups.uprn_lookup_csv import UprnLookupLocal -from backend.condition.parsing.peabody_parser import PeabodyParser -from backend.condition.parsing.records.peabody.peabody_asset_condition import ( +from infrastructure.condition.lookups.uprn_lookup_csv import UprnLookupLocal +from infrastructure.condition.parsing.peabody_parser import PeabodyParser +from domain.condition.records.peabody.peabody_asset_condition import ( PeabodyAssetCondition, ) -from backend.condition.parsing.records.peabody.peabody_property import PeabodyProperty +from domain.condition.records.peabody.peabody_property import PeabodyProperty @pytest.fixture diff --git a/tests/condition/persistence/__init__.py b/tests/condition/persistence/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/condition/tests/persistence/test_condition_postgres.py b/tests/condition/persistence/test_condition_postgres.py similarity index 90% rename from backend/condition/tests/persistence/test_condition_postgres.py rename to tests/condition/persistence/test_condition_postgres.py index ca95eaaae..44a9417ac 100644 --- a/backend/condition/tests/persistence/test_condition_postgres.py +++ b/tests/condition/persistence/test_condition_postgres.py @@ -1,14 +1,14 @@ import pytest from datetime import date -from backend.condition.persistence.condition_postgres import ConditionPostgres -from backend.condition.domain.property_condition_survey import PropertyConditionSurvey -from backend.condition.domain.element import Element -from backend.condition.domain.element_type import ElementType -from backend.condition.domain.aspect_condition import AspectCondition -from backend.condition.domain.aspect_type import AspectType -from backend.app.db.models.condition import PropertyConditionSurveyModel -from backend.condition.tests.custom_asserts import CustomAsserts +from repositories.condition.condition_postgres import ConditionPostgres +from domain.condition.property_condition_survey import PropertyConditionSurvey +from domain.condition.element import Element +from domain.condition.element_type import ElementType +from domain.condition.aspect_condition import AspectCondition +from domain.condition.aspect_type import AspectType +from infrastructure.postgres.condition_tables import PropertyConditionSurveyModel +from tests.condition.custom_asserts import CustomAsserts def test_map_survey_to_model() -> None: