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:
Trey t
2026-01-11 01:18:52 -06:00
parent 1bd248c255
commit 55c6d6e5e8
6 changed files with 83 additions and 14 deletions

View File

@@ -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