Model/packages/repos
2026-05-15 10:56:53 +00:00
..
src/repos added potential file scaffolding: 2026-05-15 10:56:53 +00:00
pyproject.toml added potential file scaffolding: 2026-05-15 10:56:53 +00:00
README.md added potential file scaffolding: 2026-05-15 10:56:53 +00:00

domna-repos

Persistence layer. One repo per aggregate; owns the SQL for its tables. Callers see only domain objects from domna-domain.

Boundary: depends on domna-domain for types. No external IO except the DB. No business logic — services do that.

Repos (per PRD §7.3)

src/repos/
├── __init__.py
├── unit_of_work.py
├── property_repo.py
├── epc_cache_repo.py
├── site_notes_repo.py
├── landlord_overrides_repo.py
├── recommendations_repo.py
├── generic_data_repo.py
├── fuel_rates_repo.py
├── carbon_factors_repo.py
├── heating_system_assumptions_repo.py
└── subtask_repo.py

Each repo has a Fake*Repo companion in its service's test tree (typically services/ara/tests/fakes/) — dict-backed, no DB.

DDL migrations are scoped to sub-PRD (iii); during Phase 0 repos may delegate into the legacy backend/app/db/db_funcs.* modules.