namespace SchotzIadKmTracker.Api.Models.DTOs; // Création — les coordonnées sont transmises par le Frontend (issues de la sélection BAN) public record CreateTrajetDto( string Date, // JJ/MM/AAAA en entrée string AdresseDepart, double? DepartLatitude, // null si adresse saisie manuellement sans BAN double? DepartLongitude, string AdresseArrivee, double? ArriveeLatitude, // null si adresse saisie manuellement sans BAN double? ArriveeLongitude, string? Commentaire, // optionnel, max 500 car. int? VehiculeId // optionnel ; null → véhicule courant à la date du trajet ); // Mise à jour public record UpdateTrajetDto( string Date, string AdresseDepart, double? DepartLatitude, double? DepartLongitude, string AdresseArrivee, double? ArriveeLatitude, double? ArriveeLongitude, string? Commentaire, int? VehiculeId // optionnel ; null → véhicule courant à la date du trajet ); // Réponse trajet public record TrajetDto( int Id, DateOnly Date, string AdresseDepart, string AdresseArrivee, decimal? Distance, // km, 2 décimales ; null si la distance n'a pas pu être calculée (Exigence 2.4) string? Commentaire, decimal Position, // rang dans la journée int VehiculeId, int PuissanceFiscale ); // Trajet enrichi pour la carte public record TrajetCarteDto( int Id, DateOnly Date, string AdresseDepart, string AdresseArrivee, decimal Distance, double? DepartLatitude, double? DepartLongitude, double? ArriveeLatitude, double? ArriveeLongitude, string? GeometrieJson // GeoJSON LineString ou null ); // Réordonnancement manuel des trajets d'une journée public record ReordonnerTrajetsDto( IReadOnlyList Trajets ); public record TrajetPositionDto( int Id, decimal Position );