feat(planning): add trip filtering and fix departure date logic
- Add Trip.status property for status tracking - Add RouteFilters trip list methods (filterBySport, filterByDateRange, filterByStatus, applyFilters) - Add TravelEstimator max driving hours validation - Fix ScenarioA/B departureDate to use last game day (not day after) - Update GameDAGRouter comments for buffer logic Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -519,15 +519,17 @@ enum GameDAGRouter {
|
||||
to: calendar.startOfDay(for: to.startTime)
|
||||
).day ?? 0
|
||||
|
||||
// For same-day games (doubleheaders), use shorter buffers
|
||||
// People leave earlier and arrive closer to game time
|
||||
// Buffer logic:
|
||||
// - Same stadium same day: 2hr post-game (doubleheader)
|
||||
// - Different stadiums same day: 2hr post-game (regional day trip)
|
||||
// - Different days: 3hr post-game (standard multi-day trip)
|
||||
let postGameBuffer: Double
|
||||
let preGameBuffer: Double
|
||||
|
||||
if daysBetween == 0 {
|
||||
// Same-day doubleheader: leave during game, arrive at game time
|
||||
postGameBuffer = 2.0 // Leave during/right after game
|
||||
preGameBuffer = 0.5 // Arrive closer to start time
|
||||
// Same-day games: use shorter buffers (doubleheader or day trip)
|
||||
postGameBuffer = 2.0 // Leave 2 hours after first game
|
||||
preGameBuffer = 0.5 // Arrive 30min before next game
|
||||
} else {
|
||||
// Different days: use standard buffers
|
||||
postGameBuffer = gameEndBufferHours // 3.0 hours
|
||||
|
||||
Reference in New Issue
Block a user