3e22cc4243
- Apply travel buffer between consecutive stops (default 15 / businessSettings.defaultTravelBufferMins); first stop carries bufferMins 0 - detectScheduleConflicts: flag tight schedule when appointment gap < travelMins + bufferMins; never auto-move appointments - PATCH /api/routes/:routeId/reorder — validate permutation of current stops, persist new stopOrder (two-pass to avoid unique collision), re-estimate legs, re-apply buffers, recompute totals - Return route + per-stop conflict flags + hasConflicts/conflictCount on /daily, /optimize, /reorder - Unit tests for detectScheduleConflicts + recomputeLegsForOrder; UAT_PLAYBOOK §4.17 Co-Authored-By: Paperclip <noreply@paperclip.ing>