// Ski pass data — comprehensive 2025-26 season data from official sources.
// Prices, blackout dates, and benefits reflect actual vendor information.

const PASSES = [
  // ── EPIC RESORTS (Vail Resorts) ──────────────────────────────────────
  {
    id: "epic-pass",
    name: "Epic Pass",
    operator: "Vail Resorts",
    group: "Epic Resorts",
    price: 1051,
    maxDays: null, // unlimited
    color: "#3a4a3f",
    blackouts: 0,
    buddyTickets: 8, // Epic Friend Tickets
    buddyDiscount: 0.50, // 50% off
    diningDiscount: 0.20,
    restrictions: "Unlimited, unrestricted access",
    avgWindow: 219,
    resortCount: 42,
    coreResorts: ["Vail", "Beaver Creek", "Breckenridge", "Keystone", "Park City", "Heavenly", "Northstar", "Kirkwood", "Stowe", "Whistler Blackcomb"],
    regions: ["Rockies", "Tahoe", "Northeast", "PNW", "Europe", "Japan", "Australia"],
    travelFriendly: true,
    localFriendly: true,
    notes: "Unlimited, unrestricted access to 42 owned resorts worldwide. No blackout dates."
  },
  {
    id: "epic-local-pass",
    name: "Epic Local Pass",
    operator: "Vail Resorts",
    group: "Epic Resorts",
    price: 783,
    maxDays: null, // unlimited (with blackouts)
    color: "#3a4a3f",
    blackouts: 4,
    buddyTickets: 0,
    buddyDiscount: 0,
    diningDiscount: 0.20,
    restrictions: "Unlimited at 29 resorts; blackouts at Tahoe/East resorts",
    avgWindow: 219,
    resortCount: 29,
    coreResorts: ["Breckenridge", "Crested Butte", "Keystone", "Stevens Pass"],
    regions: ["Rockies", "Midwest", "Northeast"],
    travelFriendly: false,
    localFriendly: true,
    notes: "Unlimited access to 29 resorts. Restricted access (blackout dates) at Heavenly, Kirkwood, Northstar, Stowe."
  },
  {
    id: "epic-military-pass",
    name: "Epic Military Pass",
    operator: "Vail Resorts",
    group: "Epic Resorts",
    price: 653,
    maxDays: null, // unlimited
    color: "#3a4a3f",
    blackouts: 0,
    buddyTickets: 6,
    buddyDiscount: 0.50,
    diningDiscount: 0.20,
    restrictions: "Unlimited, unrestricted (military only)",
    avgWindow: 219,
    resortCount: 42,
    coreResorts: ["Vail", "Beaver Creek", "Breckenridge", "Park City"],
    regions: ["Rockies", "Tahoe", "Northeast", "PNW"],
    travelFriendly: true,
    localFriendly: true,
    notes: "Military/veteran discount. Unlimited access to 42 resorts at discounted price."
  },

  // ── IKON RESORTS (Alterra Mountain Company) ──────────────────────────
  {
    id: "ikon-pass",
    name: "Ikon Pass",
    operator: "Alterra Mountain Company",
    group: "Ikon Resorts",
    price: 1329,
    maxDays: null, // unlimited (18 resorts) + 7 days at 41 others
    color: "#2d3e4f",
    blackouts: 0,
    buddyTickets: 0,
    buddyDiscount: 0.25,
    diningDiscount: 0.15,
    restrictions: "Unlimited at 18 premier resorts; 7 days at 41 partners",
    avgWindow: 229,
    resortCount: 59,
    coreResorts: ["Mammoth Mountain", "Palisades Tahoe", "Steamboat", "Winter Park", "Aspen Snowmass", "Jackson Hole", "Big Sky", "Killington"],
    regions: ["Rockies", "Tahoe", "Northeast", "PNW", "Canada", "Japan", "Europe"],
    travelFriendly: true,
    localFriendly: true,
    notes: "Unlimited at 18 premier destinations. 7 days each at 41 additional resorts worldwide. No blackout dates."
  },
  {
    id: "ikon-base-pass",
    name: "Ikon Base Pass",
    operator: "Alterra Mountain Company",
    group: "Ikon Resorts",
    price: 909,
    maxDays: null, // unlimited at 14 + 5 days at 41 others
    color: "#4a5a6a",
    blackouts: 3,
    buddyTickets: 0,
    buddyDiscount: 0.25,
    diningDiscount: 0.15,
    restrictions: "Unlimited at 14 resorts; 5 days at 41 partners with blackouts",
    avgWindow: 229,
    resortCount: 55,
    coreResorts: ["Mammoth Mountain", "Palisades Tahoe", "Steamboat", "Winter Park", "Copper Mountain", "Snowboard"],
    regions: ["Rockies", "Tahoe", "Northeast", "Canada"],
    travelFriendly: true,
    localFriendly: true,
    notes: "Unlimited at 14 resorts. Up to 5 days at 41 others. Blackout dates: 12/21-12/31, 1/17-18, 2/14-15. Excludes Alta, Aspen, Jackson Hole, Sun Valley."
  },
  {
    id: "ikon-session-pass",
    name: "Ikon Session Pass (2-4 days)",
    operator: "Alterra Mountain Company",
    group: "Ikon Resorts",
    price: 329, // 2-day starting price
    maxDays: 4, // Limited to 2-4 days max
    color: "#5a6a7a",
    blackouts: 5,
    buddyTickets: 0,
    buddyDiscount: 0,
    diningDiscount: 0,
    restrictions: "2-4 flexible days at 47 resorts",
    avgWindow: 229,
    resortCount: 47,
    coreResorts: ["Mammoth", "Palisades Tahoe", "Steamboat"],
    regions: ["Rockies", "Tahoe", "Northeast", "Canada"],
    travelFriendly: true,
    localFriendly: false,
    notes: "Flexible 2, 3, or 4-day option. Good for occasional skiers. Varies by resort."
  },

  // ── MOUNTAIN COLLECTIVE ───────────────────────────────────────────────
  {
    id: "mountain-collective",
    name: "Mountain Collective Pass",
    operator: "Independent Coalition",
    group: "Mountain Collective",
    price: 699,
    maxDays: null, // 2 days per resort × 27 resorts = potential 54 days, but capped by travel pattern
    color: "#6b5a3f",
    blackouts: 0,
    buddyTickets: 1,
    buddyDiscount: 0.50,
    diningDiscount: 0.0,
    restrictions: "2 free days per resort; 50% off additional days",
    avgWindow: 215,
    resortCount: 27,
    coreResorts: ["Jackson Hole", "Aspen Snowmass", "Alta", "Snowbird", "Big Sky", "Sun Valley", "Taos"],
    regions: ["Rockies", "Tahoe", "Canada", "Japan", "Europe"],
    travelFriendly: true,
    localFriendly: false,
    notes: "2 free days at each of 27 premier resorts. 50% discount on additional days. Best value for trip skiers (8+ days across 3+ resorts)."
  },

  // ── INDY PASS ────────────────────────────────────────────────────────
  {
    id: "indy-plus-pass",
    name: "Indy Plus Pass",
    operator: "Indy Pass",
    group: "Indy Pass",
    price: 599,
    maxDays: null, // unlimited at 271 resorts
    color: "#7a6a4a",
    blackouts: 0,
    buddyTickets: 0,
    buddyDiscount: 0.25,
    diningDiscount: 0.0,
    restrictions: "Unlimited access to 271 independent resorts",
    avgWindow: 89,
    resortCount: 271,
    coreResorts: ["Jay Peak", "Waterville Valley", "Nub's Nob", "Powder Mountain", "Cannon", "Castle Mountain"],
    regions: ["Rockies", "PNW", "Northeast", "Midwest", "Canada", "Europe", "Asia"],
    travelFriendly: true,
    localFriendly: true,
    notes: "Unlimited access to 271 independent resorts worldwide. No blackout dates. New for 2025-26: 43 new resorts, expanded European access."
  },
  {
    id: "indy-base-pass",
    name: "Indy Base Pass",
    operator: "Indy Pass",
    group: "Indy Pass",
    price: 449,
    maxDays: null, // limited days with blackouts
    color: "#8a7a5a",
    blackouts: 8,
    buddyTickets: 0,
    buddyDiscount: 0,
    diningDiscount: 0.0,
    restrictions: "Limited days at 271 independent resorts",
    avgWindow: 89,
    resortCount: 271,
    coreResorts: ["Jay Peak", "Waterville Valley"],
    regions: ["Rockies", "PNW", "Northeast", "Midwest", "Canada"],
    travelFriendly: true,
    localFriendly: true,
    notes: "Limited access to 271 independent resorts with blackout dates."
  },

  // ── BOYNE RESORTS ────────────────────────────────────────────────────
  {
    id: "boyne-passport",
    name: "Boyne Passport",
    operator: "Boyne Resorts",
    group: "Boyne Resorts",
    price: 2600,
    maxDays: null, // unlimited
    color: "#5a3a2a",
    blackouts: 0,
    buddyTickets: 0,
    buddyDiscount: 0.20,
    diningDiscount: 0.15,
    restrictions: "Unlimited at Big Sky, Sunday River, Sugarloaf, NZ resorts",
    avgWindow: 250,
    resortCount: 5,
    coreResorts: ["Big Sky Resort", "Sunday River", "Sugarloaf", "The Remarkables", "Cardrona"],
    regions: ["Rockies", "Northeast", "New Zealand"],
    travelFriendly: true,
    localFriendly: true,
    notes: "Unlimited access across portfolio. Includes Big Sky with Lone Peak Tram access. Early lift access. Can add Ikon Pass for $299-799."
  },
  {
    id: "boyne-explorer-pass",
    name: "Boyne Explorer Pass (3-6 days)",
    operator: "Boyne Resorts",
    group: "Boyne Resorts",
    price: 385, // 3-day starting
    maxDays: 6, // Limited to 3-6 days
    color: "#6a4a3a",
    blackouts: 0,
    buddyTickets: 0,
    buddyDiscount: 0.15,
    diningDiscount: 0.10,
    restrictions: "3-6 days at Boyne portfolio",
    avgWindow: 250,
    resortCount: 5,
    coreResorts: ["Big Sky Resort", "Sunday River", "Sugarloaf"],
    regions: ["Rockies", "Northeast"],
    travelFriendly: false,
    localFriendly: false,
    notes: "3-6 day options at Boyne Resorts. Flexible access at lower price point."
  },

  // ── UTAH REGIONAL PASSES ──────────────────────────────────────────────
  {
    id: "ski-utah-gold-pass",
    name: "Ski Utah Gold Pass",
    operator: "Ski Utah Consortium",
    group: "Utah Regional",
    price: 12500,
    maxDays: null, // unlimited
    color: "#d4af37",
    blackouts: 0,
    buddyTickets: 0,
    buddyDiscount: 0.0,
    diningDiscount: 0.0,
    restrictions: "Unlimited, transferable access to all 6 Utah resorts",
    avgWindow: 280,
    resortCount: 6,
    coreResorts: ["Park City Mountain", "Powder Mountain", "Snowbasin", "Snowbird", "Solitude", "Sundance"],
    regions: ["Wasatch"],
    travelFriendly: false,
    localFriendly: true,
    notes: "Premium option. Unlimited, transferable access to all 6 Utah resorts. No blackout dates ever. Can ski 6 resorts in one day."
  },
  {
    id: "power-pass",
    name: "Power Pass",
    operator: "Utah Multi-Resort Consortium",
    group: "Utah Regional",
    price: 749, // Full Pass adult
    maxDays: null, // unlimited
    color: "#e74c3c",
    blackouts: 0,
    buddyTickets: 0,
    buddyDiscount: 0.0,
    diningDiscount: 0.10,
    restrictions: "Unlimited at 12 Utah resorts; Kids 12 & under free",
    avgWindow: 200,
    resortCount: 12,
    coreResorts: ["Nordic Valley", "Brian Head", "Cherry Peak"],
    regions: ["Wasatch", "Utah"],
    travelFriendly: false,
    localFriendly: true,
    notes: "Family-friendly. Kids 12 & under ski free. Includes 10 days in Chile, 2 golf rounds in Arizona. Price locked for 3 years."
  },

  // ── REGIONAL/SINGLE-RESORT PASSES ────────────────────────────────────
  {
    id: "sierra-at-tahoe-unlimited",
    name: "Sierra-at-Tahoe Unlimited",
    operator: "Sierra-at-Tahoe",
    group: "Regional",
    price: 695,
    maxDays: null, // unlimited single resort
    color: "#4a8a5a",
    blackouts: 0,
    buddyTickets: 0,
    buddyDiscount: 0.15,
    diningDiscount: 0.10,
    restrictions: "Unlimited at single resort",
    avgWindow: 189,
    resortCount: 1,
    coreResorts: ["Sierra-at-Tahoe"],
    regions: ["Tahoe"],
    travelFriendly: false,
    localFriendly: true,
    notes: "Single-resort unlimited pass. 7 days/week unrestricted access. No price increase for 2025-26."
  },
];

// Resort coverage — map positions and pass affiliations
const RESORTS = [
  // Tahoe Region
  { id: "heavenly",     name: "Heavenly",           region: "Tahoe",     x: 0.16, y: 0.48, passes: ["epic-pass", "epic-local-pass"] },
  { id: "northstar",    name: "Northstar",          region: "Tahoe",     x: 0.15, y: 0.46, passes: ["epic-pass", "epic-local-pass"] },
  { id: "kirkwood",     name: "Kirkwood",           region: "Tahoe",     x: 0.16, y: 0.49, passes: ["epic-pass", "epic-local-pass"] },
  { id: "palisades",    name: "Palisades Tahoe",    region: "Tahoe",     x: 0.14, y: 0.46, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "sierra-tahoe", name: "Sierra-at-Tahoe",    region: "Tahoe",     x: 0.15, y: 0.50, passes: ["sierra-at-tahoe-unlimited"] },

  // Colorado
  { id: "vail",         name: "Vail",               region: "Colorado",  x: 0.46, y: 0.46, passes: ["epic-pass"] },
  { id: "beaver-creek", name: "Beaver Creek",       region: "Colorado",  x: 0.46, y: 0.47, passes: ["epic-pass"] },
  { id: "breck",        name: "Breckenridge",       region: "Colorado",  x: 0.47, y: 0.48, passes: ["epic-pass", "epic-local-pass"] },
  { id: "keystone",     name: "Keystone",           region: "Colorado",  x: 0.47, y: 0.47, passes: ["epic-pass", "epic-local-pass"] },
  { id: "crested-butte", name: "Crested Butte",     region: "Colorado",  x: 0.45, y: 0.50, passes: ["epic-pass", "epic-local-pass"] },
  { id: "copper",       name: "Copper Mountain",    region: "Colorado",  x: 0.46, y: 0.48, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "winter-park",  name: "Winter Park",        region: "Colorado",  x: 0.47, y: 0.46, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "steamboat",    name: "Steamboat",          region: "Colorado",  x: 0.46, y: 0.43, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "aspen",        name: "Aspen Snowmass",     region: "Colorado",  x: 0.45, y: 0.49, passes: ["ikon-pass", "mountain-collective"] },
  { id: "abasin",       name: "Arapahoe Basin",     region: "Colorado",  x: 0.48, y: 0.46, passes: ["ikon-pass", "ikon-base-pass"] },

  // Wasatch (Utah)
  { id: "alta",         name: "Alta",               region: "Wasatch",   x: 0.36, y: 0.44, passes: ["mountain-collective", "ski-utah-gold-pass"] },
  { id: "snowbird",     name: "Snowbird",           region: "Wasatch",   x: 0.36, y: 0.45, passes: ["ikon-pass", "mountain-collective", "ski-utah-gold-pass"] },
  { id: "park-city",    name: "Park City Mountain", region: "Wasatch",   x: 0.37, y: 0.43, passes: ["epic-pass", "ski-utah-gold-pass"] },
  { id: "powder-mtn",   name: "Powder Mountain",    region: "Wasatch",   x: 0.36, y: 0.41, passes: ["indy-plus-pass", "ski-utah-gold-pass"] },
  { id: "snowbasin",    name: "Snowbasin",          region: "Wasatch",   x: 0.36, y: 0.42, passes: ["ikon-pass", "ski-utah-gold-pass"] },
  { id: "solitude",     name: "Solitude",           region: "Wasatch",   x: 0.36, y: 0.44, passes: ["ski-utah-gold-pass"] },

  // Montana/Wyoming
  { id: "jackson",      name: "Jackson Hole",       region: "Tetons",    x: 0.40, y: 0.36, passes: ["ikon-pass", "mountain-collective"] },
  { id: "big-sky",      name: "Big Sky Resort",     region: "Montana",   x: 0.42, y: 0.30, passes: ["ikon-pass", "ikon-base-pass", "mountain-collective", "boyne-passport"] },
  { id: "sun-valley",   name: "Sun Valley",         region: "Idaho",     x: 0.32, y: 0.34, passes: ["ikon-pass", "mountain-collective"] },

  // PNW
  { id: "whistler",     name: "Whistler Blackcomb", region: "PNW",       x: 0.08, y: 0.18, passes: ["epic-pass"] },
  { id: "stevens",      name: "Stevens Pass",       region: "PNW",       x: 0.10, y: 0.26, passes: ["epic-pass", "epic-local-pass"] },
  { id: "crystal",      name: "Crystal Mountain",   region: "PNW",       x: 0.11, y: 0.28, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "mt-bachelor",  name: "Mt. Bachelor",       region: "PNW",       x: 0.12, y: 0.32, passes: ["ikon-pass", "ikon-base-pass"] },

  // Northeast
  { id: "killington",   name: "Killington",         region: "Northeast", x: 0.82, y: 0.30, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "stowe",        name: "Stowe",              region: "Northeast", x: 0.82, y: 0.27, passes: ["epic-pass", "epic-local-pass"] },
  { id: "sugarbush",    name: "Sugarbush",          region: "Northeast", x: 0.81, y: 0.29, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "okemo",        name: "Okemo",              region: "Northeast", x: 0.82, y: 0.31, passes: ["epic-pass"] },
  { id: "stratton",     name: "Stratton",           region: "Northeast", x: 0.82, y: 0.32, passes: ["ikon-pass", "ikon-base-pass"] },
  { id: "jay-peak",     name: "Jay Peak",           region: "Northeast", x: 0.82, y: 0.24, passes: ["indy-plus-pass"] },
  { id: "waterville",   name: "Waterville Valley",  region: "Northeast", x: 0.84, y: 0.29, passes: ["indy-plus-pass"] },
  { id: "sunday-river", name: "Sunday River",       region: "Northeast", x: 0.83, y: 0.27, passes: ["boyne-passport", "boyne-explorer-pass"] },
  { id: "sugarloaf",    name: "Sugarloaf",          region: "Northeast", x: 0.83, y: 0.25, passes: ["boyne-passport", "boyne-explorer-pass"] },

  // Canada
  { id: "banff",        name: "Banff Sunshine",     region: "Canada",    x: 0.32, y: 0.14, passes: ["ikon-pass", "mountain-collective"] },
  { id: "revelstoke",   name: "Revelstoke",         region: "Canada",    x: 0.20, y: 0.14, passes: ["ikon-pass", "mountain-collective"] },
  { id: "lake-louise",  name: "Lake Louise",        region: "Canada",    x: 0.31, y: 0.13, passes: ["mountain-collective"] },
  { id: "tremblant",    name: "Tremblant",          region: "Canada",    x: 0.82, y: 0.19, passes: ["ikon-pass", "ikon-base-pass"] },
];

// Scenario presets
const SCENARIO_PRESETS = {
  local: {
    name: "Local season",
    days: 22,
    region: "Colorado",
    flexibility: "high",
    travel: "local",
    groupSize: 1,
  },
  travel: {
    name: "Travel-heavy",
    days: 14,
    region: "Multiple",
    flexibility: "low",
    travel: "destination",
    groupSize: 2,
  },
  weekend: {
    name: "Weekend warrior",
    days: 8,
    region: "Northeast",
    flexibility: "medium",
    travel: "local",
    groupSize: 1,
  },
  family: {
    name: "Family trip",
    days: 10,
    region: "Wasatch",
    flexibility: "medium",
    travel: "destination",
    groupSize: 4,
  },
};

window.PASSES = PASSES;
window.RESORTS = RESORTS;
window.SCENARIO_PRESETS = SCENARIO_PRESETS;
