Model/tests/orchestration
Khalim Conn-Kowlessar fd43cf2d23 feat(epc-prediction): slice-5c predicted-EPC persistence slot
Add a `source` discriminator (lodged | predicted) to the EPC store so a Property
holds a lodged EPC and a predicted one (EPC Prediction gap-fill) at once
(ADR-0031). EpcRepository.save gains source="lodged"; idempotent delete is now
per-source (a predicted save no longer wipes lodged, and vice versa);
get_for_property/get_for_properties filter lodged; new get_predicted_for_property
/ get_predicted_for_properties read predicted. PropertyPostgresRepository.get +
get_many hydrate Property.predicted_epc, so the predicted picture reaches the
modelling read (both load via get_many). FakeEpcRepo mirrors the dual slot.

EpcPropertyModel gains `source` (default "lodged"); the test DB builds from the
SQLModel mirror so this is exercised without the prod migration. The matching
Drizzle change (column + per-(property_id,source) uniqueness) is the team's to
action before merge — docs/MIGRATION_NOTE_predicted_epc_source.md.

3 store tests (coexist, idempotent predicted re-save leaves lodged, lodged-only
has no predicted) + property-repo wiring; 85 pass across affected suites; new
code pyright-clean (2 pre-existing wwhrs errors in epc_property_table untouched).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 03:50:19 +00:00
..
audit_generator move spreadsheet population logic to domain 2026-06-09 14:43:24 +00:00
magic_plan UploadedFile, FileTypeEnum, FileSourceEnum importable from infrastructure.postgres.uploaded_file_table 🟩 2026-06-09 11:50:51 +00:00
__init__.py added postcode splitter rewrite to ddd 2026-05-19 16:35:09 +00:00
fakes.py feat(epc-prediction): slice-5c predicted-EPC persistence slot 2026-06-16 03:50:19 +00:00
test_ara_first_run_pipeline.py feat(modelling): ModellingOrchestrator persists a Plan end-to-end (#1157) 2026-06-03 12:08:32 +00:00
test_ara_first_run_pipeline_integration.py test(orchestration): re-pin multi-measure plan to the gain-maximising package 2026-06-15 13:46:22 +00:00
test_build_canonical_filename.py move tests out of scripts/ 2026-06-15 11:11:08 +00:00
test_bulk_upload_finaliser_orchestrator.py fix 2026-06-05 17:24:17 +00:00
test_first_run_without_database.py feat(modelling): run_one console entrypoint for DB-less inspection 2026-06-04 08:14:14 +00:00
test_ingestion_orchestrator.py 17.1 and 18 done by claude 2026-06-12 12:52:36 +00:00
test_landlord_description_overrides_orchestrator.py moved classifier data transformation to an easy one 2026-06-01 14:53:34 +00:00
test_modelling_solar_threading.py 17.1 and 18 done by claude 2026-06-12 12:52:36 +00:00
test_postcode_splitter_orchestrator.py updated rdsap option; seperated s3 location in infrastrucutre; added open ai api 2026-05-22 14:00:33 +00:00
test_property_baseline_orchestrator.py feat(baseline): CalculatorRebaseliner — calculator goes load-bearing (ADR-0013 amend) 2026-06-04 15:40:26 +00:00
test_task_orchestrator.py tests framework completed 2026-05-20 14:00:19 +00:00