chore: remove scraper, add docs, add marketing-videos gitignore

- Remove Scripts/ directory (scraper no longer needed)
- Add themed background documentation to CLAUDE.md
- Add .gitignore for marketing-videos to prevent node_modules tracking

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-26 18:13:12 -06:00
parent bfa172de38
commit dbb0099776
129 changed files with 14805 additions and 25325 deletions

View File

@@ -28,6 +28,7 @@ enum PlanningMode: String, Codable, CaseIterable, Identifiable {
case gameFirst // Pick games first, trip around those games
case locations // Start/end locations, optional games along route
case followTeam // Follow one team's schedule (home + away)
case teamFirst // Select teams, find optimal trip windows across season
var id: String { rawValue }
@@ -37,6 +38,7 @@ enum PlanningMode: String, Codable, CaseIterable, Identifiable {
case .gameFirst: return "By Games"
case .locations: return "By Route"
case .followTeam: return "Follow Team"
case .teamFirst: return "By Teams"
}
}
@@ -46,6 +48,7 @@ enum PlanningMode: String, Codable, CaseIterable, Identifiable {
case .gameFirst: return "Build trip around specific games"
case .locations: return "Plan route between locations"
case .followTeam: return "Follow your team on the road"
case .teamFirst: return "Select teams, find best trip windows"
}
}
@@ -55,6 +58,7 @@ enum PlanningMode: String, Codable, CaseIterable, Identifiable {
case .gameFirst: return "sportscourt"
case .locations: return "map"
case .followTeam: return "person.3.fill"
case .teamFirst: return "person.2.badge.gearshape"
}
}
}
@@ -258,6 +262,9 @@ struct TripPreferences: Codable, Hashable {
/// Trip duration for gameFirst mode sliding windows (number of days)
var gameFirstTripDuration: Int
/// Teams to visit (for Team-First mode) - canonical team IDs
var selectedTeamIds: Set<String> = []
init(
planningMode: PlanningMode = .dateRange,
startLocation: LocationInput? = nil,
@@ -281,7 +288,8 @@ struct TripPreferences: Codable, Hashable {
selectedRegions: Set<Region> = [.east, .central, .west],
followTeamId: String? = nil,
useHomeLocation: Bool = true,
gameFirstTripDuration: Int = 7
gameFirstTripDuration: Int = 7,
selectedTeamIds: Set<String> = []
) {
self.planningMode = planningMode
self.startLocation = startLocation
@@ -306,6 +314,7 @@ struct TripPreferences: Codable, Hashable {
self.followTeamId = followTeamId
self.useHomeLocation = useHomeLocation
self.gameFirstTripDuration = gameFirstTripDuration
self.selectedTeamIds = selectedTeamIds
}
var totalDriverHoursPerDay: Double {
@@ -318,4 +327,9 @@ struct TripPreferences: Codable, Hashable {
let days = Calendar.current.dateComponents([.day], from: startDate, to: endDate).day ?? 7
return max(1, days)
}
/// Maximum trip duration for Team-First mode (2 days per selected team)
var teamFirstMaxDays: Int {
selectedTeamIds.count * 2
}
}