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

@@ -368,9 +368,8 @@ final class ScenarioBPlanner: ScenarioPlanner {
address: stadium?.fullAddress
)
// departureDate is day AFTER last game (we leave the next morning)
// departureDate is same day as last game
let lastGameDate = sortedGames.last?.gameDate ?? Date()
let departureDateValue = Calendar.current.date(byAdding: .day, value: 1, to: lastGameDate) ?? lastGameDate
return ItineraryStop(
city: city,
@@ -378,7 +377,7 @@ final class ScenarioBPlanner: ScenarioPlanner {
coordinate: coordinate,
games: sortedGames.map { $0.id },
arrivalDate: sortedGames.first?.gameDate ?? Date(),
departureDate: departureDateValue,
departureDate: lastGameDate,
location: location,
firstGameStart: sortedGames.first?.startTime
)