Model/tests/applications
Daniel Roth f7328f54c5 Fetch a property's lodged EPC by UPRN, not property_id
An epc_property row can carry a null property_id (FE/historic ingestion
persists EPC rows never linked to a property row), so a property_id-keyed
read silently misses them. UPRN is the durable key both the property row
and the epc_property row share. Repoint the lodged reads (get_for_property
+ get_for_properties) onto UPRN; the predicted reads stay on property_id
because a predicted EPC deep-copies a neighbour's UPRN, so its UPRN column
is never the property's own.

UPRN is not unique on epc_property, so the read tie-break is now load-
bearing (it was dormant under property_id, where the write path guarantees
one lodged row per property): the most recently ingested (highest-id) row
wins. Write path stays keyed on (property_id, source).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-14 10:35:51 +00:00
..
abri Date an abandonment to the deal's own dates, not now() 🟩 2026-07-08 08:51:39 +00:00
ara_first_run refactor(ara): rename FirstRunPipeline → AraFirstRunPipeline (PR #1139 review) 2026-06-01 15:00:33 +00:00
audit_generator put db engine construction inside handler to avoid import errors in test 2026-06-09 15:18:42 +00:00
landlord_description_overrides Classify the landlord Hot Water and Heating columns into categories 🟥 2026-06-19 14:07:14 +00:00
magic_plan define MagicPlanConfig class to get environment variables 2026-06-05 15:46:32 +00:00
modelling_e2e Fetch a property's lodged EPC by UPRN, not property_id 2026-07-14 10:35:51 +00:00
__init__.py feat(ara): AraFirstRunTriggerBody + ara_first_run lambda skeleton (#1130) 2026-05-30 20:38:15 +00:00