
from __future__ import annotations

from typing import Any

from .territory import load_sources_catalog
from .cache import describe_cache
from .connectors import insee, sitadel, artificialisation


def external_status() -> dict[str, Any]:
    catalog = load_sources_catalog()
    return {
        "sources": catalog,
        "status": {
            "api_geo": describe_cache("agency_communes.json"),
            "georisques": describe_cache("georisques_communes.json"),
            "insee": insee.status(),
            "sitadel": sitadel.status(),
            "consommation_enaf": artificialisation.status(),
        },
        "message": "Public API connectors are prepared. Heavy spatial building data remains in local PostGIS.",
    }
