# pxy_routing/services/provider.py
from __future__ import annotations
from typing import Any, Dict, Tuple

from .factory import get_routing_provider

# --- Legacy classes kept for backward compatibility ---
class RoutingProvider:
    def health(self) -> Dict[str, Any]:
        raise NotImplementedError

    def isochrone(self, center: Tuple[float, float], minutes: int) -> Dict[str, Any]:
        raise NotImplementedError

class NullRoutingProvider(RoutingProvider):
    def health(self) -> Dict[str, Any]:
        return {"provider": "null", "ok": False, "reason": "Routing provider not configured"}

    def isochrone(self, center: Tuple[float, float], minutes: int) -> Dict[str, Any]:
        raise NotImplementedError("Routing provider not configured")

# --- Functional API kept for existing callers ---
def health() -> Dict[str, Any]:
    return get_routing_provider().health()

def isochrone(center: Tuple[float, float], minutes: int) -> Dict[str, Any]:
    return get_routing_provider().isochrone(center, minutes)

# Optional convenience instance some code may import as 'rp'
rp = get_routing_provider()
