from __future__ import annotations from abc import ABC, abstractmethod from typing import Optional from domain.geospatial.coordinates import Coordinates class GeospatialRepository(ABC): """Resolves a Property's coordinates from hosted reference data by UPRN. A Repo, not a Fetcher (ADR-0011): it reads stored Ordnance Survey Open-UPRN data, with no live API call. Returns None when the UPRN is not covered. """ @abstractmethod def coordinates_for(self, uprn: int) -> Optional[Coordinates]: ...