namespace TrajetKmTracker.Api.Services; /// /// Résultat d'un calcul de distance orchestré par . /// Porte les coordonnées résolues des adresses de départ et d'arrivée, la distance /// éventuellement calculée (routière via ORS ou orthodromique via Haversine), la /// géométrie GeoJSON de l'itinéraire lorsqu'elle est disponible, et un éventuel /// avertissement lorsque la distance n'a pas pu être calculée. /// /// Latitude résolue du point de départ (null si non résoluble). /// Longitude résolue du point de départ (null si non résoluble). /// Latitude résolue du point d'arrivée (null si non résoluble). /// Longitude résolue du point d'arrivée (null si non résoluble). /// /// Distance en kilomètres, arrondie à 2 décimales et bornée entre 0,01 et 99 999,99 km ; /// null lorsque la distance n'a pas pu être calculée (aucune coordonnée résoluble). /// /// /// Géométrie GeoJSON de l'itinéraire routier (fournie par ORS) ; null en cas de /// fallback Haversine ou d'absence de calcul. /// /// /// Vrai lorsque la distance n'a pas pu être calculée faute de coordonnées résolubles ; /// dans ce cas l'appelant stocke une distance nulle avec un avertissement. /// /// Message d'avertissement associé, ou null. public record DistanceCalculationResult( double? DepartLatitude, double? DepartLongitude, double? ArriveeLatitude, double? ArriveeLongitude, decimal? DistanceKm, string? GeometrieJson, bool Avertissement, string? Message);