feat(optimization): enforce maxDistanceKm / maxDurationMinutes on optimize and trips
Avant
- Les plafonds de préparation (maxDistanceKm, maxDurationMinutes) n’étaient pas garantis sur le parcours réellement routé : l’optimisation pouvait proposer des circuits ou la prévisualisation afficher des trajets au-delà des limites convenues avec le service circuits.
- La prévisualisation ne recevait pas les mêmes garde-fous que l’optimisation, ce qui pouvait créer un écart entre ce que voyait l’utilisateur et ce qui serait acceptable en fusion / production.
- Une limite de durée implicite (60 minutes) s’appliquait en phase 1 sans être explicitement paramétrée, ce qui pouvait masquer l’intention métier ou diverger du paramétrage stocké.
Après
- Lorsque les limites sont renseignées, les propositions d’optimisation et les trajets prévisualisés respectent les mêmes bornes sur la distance et le temps de parcours moteur (profil ORS aligné avec l’évaluation fusion).
- Les trajets de prévisualisation qui dépassent les plafonds ne sont plus exposés ; les passagers non matérialisés peuvent être signalés avec un motif explicite lorsque les contraintes de routage sont actives.
- Seules les valeurs explicitement configurées plafonnent la durée ; le paramétrage préparation devient la source de vérité pour activer ou non ces contrôles, avec une note de rupture documentée pour les clients qui s’appuyaient sur l’ancien plafond implicite.