namespace SchotzIadKmTracker.Api.Services;
///
/// Client de l'API OpenRouteService (ORS) — calcul d'itinéraire routier uniquement.
/// ORS n'est jamais appelé pour du géocodage ni avec des coordonnées nulles :
/// les coordonnées de départ et d'arrivée doivent être connues (non-null).
///
public interface IORSClient
{
///
/// Calcule l'itinéraire routier entre deux points géographiques connus via
/// POST /v2/directions/driving-car et retourne la distance (km) et la
/// géométrie GeoJSON de l'itinéraire.
///
/// Latitude du point de départ.
/// Longitude du point de départ.
/// Latitude du point d'arrivée.
/// Longitude du point d'arrivée.
/// Jeton d'annulation.
/// Un (distance en km + géométrie GeoJSON).
///
/// Levée si l'appel dépasse le délai imparti (voir ORSOptions.TimeoutSeconds),
/// afin que l'appelant applique le fallback orthodromique (Haversine).
///
///
/// Levée en cas d'échec général (erreur réseau, réponse invalide, corps illisible).
///
Task CalculateRouteAsync(
double lat1,
double lon1,
double lat2,
double lon2,
CancellationToken cancellationToken = default);
}