Model/applications/condition/load_report.py
Khalim Conn-Kowlessar 87eecc6400 Summarise a Calico load as a four-count reconciliation report 🟥
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 15:09:39 +00:00

25 lines
701 B
Python

from dataclasses import dataclass
from typing import List
from domain.condition.records.calico.calico_property import CalicoProperty
@dataclass(frozen=True)
class LoadReport:
"""The reconciliation a Calico load emits so nothing vanishes silently
(ADR-0064): how many observations were loaded versus dropped, and why."""
loaded: int
unmatched_to_portfolio: int
null_uprn: int
blank_placeholder: int
@classmethod
def from_calico_load(
cls,
properties: List[CalicoProperty],
blank_placeholder_count: int,
unmatched_reference_count: int,
null_uprn_references: List[str],
) -> "LoadReport":
raise NotImplementedError