Fix coast-to-coast trips and improve itinerary display

- Fix same-day different-city validation in C2C routes (no more impossible
  games like Detroit 7:30pm AND Milwaukee 8pm on the same day)
- Cap C2C trips at 14 days max with 3 middle stops, prefer shortest routes
- Add sport icon and name to game rows in trip itinerary
- Add horizontal scroll to route dots in suggested trip cards
- Allow swipe-to-dismiss on home sheet (trip planner still blocks)
- Generate travel segments for suggested trips
- Increase DAG route lookahead to 5 days for multi-day drives

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-09 11:42:27 -06:00
parent 7efcea7bd4
commit 3e778473e6
7 changed files with 531 additions and 120 deletions

View File

@@ -651,16 +651,28 @@ struct GameRow: View {
SportColorBar(sport: game.game.sport)
VStack(alignment: .leading, spacing: 4) {
// Matchup
HStack(spacing: 4) {
Text(game.awayTeam.abbreviation)
.font(.system(size: Theme.FontSize.body, weight: .bold))
Text("@")
.foregroundStyle(Theme.textMuted(colorScheme))
Text(game.homeTeam.abbreviation)
.font(.system(size: Theme.FontSize.body, weight: .bold))
// Sport badge + Matchup
HStack(spacing: 6) {
// Sport icon and name
HStack(spacing: 3) {
Image(systemName: game.game.sport.iconName)
.font(.system(size: 10))
Text(game.game.sport.rawValue)
.font(.system(size: 10, weight: .medium))
}
.foregroundStyle(game.game.sport.themeColor)
// Matchup
HStack(spacing: 4) {
Text(game.awayTeam.abbreviation)
.font(.system(size: Theme.FontSize.body, weight: .bold))
Text("@")
.foregroundStyle(Theme.textMuted(colorScheme))
Text(game.homeTeam.abbreviation)
.font(.system(size: Theme.FontSize.body, weight: .bold))
}
.foregroundStyle(Theme.textPrimary(colorScheme))
}
.foregroundStyle(Theme.textPrimary(colorScheme))
// Stadium
HStack(spacing: 4) {