feat: réutilisation des coordonnées déjà géocodées (domicile, insertion de trajets)
Expose les coordonnées déjà géocodées dans ProfilDto (DomicileLatitude/Longitude) et TrajetDto (DepartLatitude/Longitude, ArriveeLatitude/Longitude) afin que le Frontend les réutilise sans déclencher un nouveau géocodage BAN : - Bouton « Utiliser mon domicile » (trajet-form) : utilise désormais les coordonnées du Profil au lieu de forcer un re-géocodage. - Actions « insérer avant/après » (trajet-list) : transmettent les coordonnées déjà connues du point de fin repris au formulaire d'insertion. Le résumé mensuel (ResumeService) résout les coordonnées via le Cache_Adresses pour chaque trajet (nouvelle méthode ConstruireResumeMensuelAvecCoordonneesAsync) ; le résumé annuel reste inchangé pour éviter des lookups de cache inutiles sur une vue qui n'affiche pas le détail des trajets. Met à jour design.md et design-requirements.md (Requirements 10 et 11) pour refléter le nouveau contrat d'API.
This commit is contained in:
@@ -98,7 +98,7 @@ public class TrajetService : ITrajetService
|
||||
}
|
||||
|
||||
return new TrajetCreationResult(
|
||||
Trajet: ToDto(trajet),
|
||||
Trajet: ToDto(trajet, distanceResult),
|
||||
Avertissement: distanceResult.Avertissement,
|
||||
Message: distanceResult.Avertissement ? distanceResult.Message : null);
|
||||
}
|
||||
@@ -224,7 +224,7 @@ public class TrajetService : ITrajetService
|
||||
}
|
||||
|
||||
return new TrajetUpdateResult(
|
||||
Trajet: ToDto(trajet),
|
||||
Trajet: ToDto(trajet, distanceResult),
|
||||
Avertissement: avertissement,
|
||||
Message: messageAvertissement);
|
||||
}
|
||||
@@ -438,7 +438,15 @@ public class TrajetService : ITrajetService
|
||||
return parsed;
|
||||
}
|
||||
|
||||
private static TrajetDto ToDto(Trajet t) =>
|
||||
/// <summary>
|
||||
/// Construit le <see cref="TrajetDto"/> de retour, enrichi des coordonnées déjà résolues
|
||||
/// par <paramref name="distanceResult"/> (calcul de distance effectué dans le même appel),
|
||||
/// afin que le frontend puisse les réutiliser sans re-géocoder (ex. insertion d'un trajet
|
||||
/// reprenant cette adresse). <c>null</c> si aucun calcul n'a eu lieu dans cet appel (adresses
|
||||
/// inchangées à la modification) : aucune régression, ce DTO n'étant pas la source utilisée
|
||||
/// pour l'insertion (voir ResumeService, qui résout les coordonnées via le Cache_Adresses).
|
||||
/// </summary>
|
||||
private static TrajetDto ToDto(Trajet t, DistanceCalculationResult? distanceResult = null) =>
|
||||
new(
|
||||
t.Id,
|
||||
t.Date,
|
||||
@@ -450,5 +458,9 @@ public class TrajetService : ITrajetService
|
||||
t.Position,
|
||||
t.VehiculeId,
|
||||
t.PuissanceFiscale,
|
||||
t.AllerRetour);
|
||||
t.AllerRetour,
|
||||
distanceResult?.DepartLatitude,
|
||||
distanceResult?.DepartLongitude,
|
||||
distanceResult?.ArriveeLatitude,
|
||||
distanceResult?.ArriveeLongitude);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user