Files
Sportstime/docs/PLAN-REMOVE-CBB.md
Trey t 5c13650742 fix: resolve specificStadium achievement ID mismatch
The Green Monster (Fenway) and Ivy League (Wrigley) achievements
weren't working because:
1. Symbolic IDs use lowercase sport (stadium_mlb_bos)
2. Sport enum uses uppercase raw values (MLB)
3. Visits store stadium UUIDs, not symbolic IDs

Added resolveSymbolicStadiumId() helper that:
- Uppercases the sport string before Sport(rawValue:)
- Looks up team by abbreviation and sport
- Returns the team's stadiumId as UUID string

Also fixed:
- getStadiumIdsForLeague returns UUID strings (not symbolic IDs)
- AchievementProgress.isEarned computed from progress OR stored record
- getStadiumIdsForDivision queries CanonicalTeam properly

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 22:22:29 -06:00

5.2 KiB

Plan: Remove College Basketball (CBB) from iOS App

Status: Complete Created: 2026-01-11 Last Updated: 2026-01-11


Overview

Goal: Permanently remove all traces of College Basketball (CBB) from the SportsTime iOS app.

Reason: Too many games (~5,000+ per season with ~360 Division I teams) creates complexity without sufficient user value.

Scope:

  • Remove CBB from Sport enum and all related properties
  • Remove CBB theme colors
  • Remove CBB from documentation
  • No backend/CloudKit changes required
  • No saved trip migration needed (no users have CBB trips)

Pre-Implementation Checklist

  • Confirm no active users have saved trips with CBB games
  • Verify CloudKit has no CBB data that needs cleanup

Phase 1: Core Model Removal

Status: Not Started

Remove CBB from the Sport enum and its associated properties.

Status Task File Details
[ ] 1.1 Remove .cbb enum case Core/Models/Domain/Sport.swift Line 17: case cbb = "CBB"
[ ] 1.2 Remove CBB displayName Core/Models/Domain/Sport.swift Line 30: "College Basketball" in displayName computed property
[ ] 1.3 Remove CBB iconName Core/Models/Domain/Sport.swift Line 43: "basketball.fill" in iconName computed property
[ ] 1.4 Remove CBB color Core/Models/Domain/Sport.swift Line 56: .mint in color computed property
[ ] 1.5 Remove CBB seasonMonths Core/Models/Domain/Sport.swift Line 70: (11, 4) in seasonMonths computed property
[ ] 1.6 Remove CBB from Sport.supported Core/Models/Domain/Sport.swift Line 90: Remove .cbb from supported array

Verification: Build succeeds with no compiler errors about missing switch cases.


Phase 2: Theme Cleanup

Status: Not Started

Remove CBB-specific theme colors and view modifier mappings.

Status Task File Details
[ ] 2.1 Remove cbbMint color constant Core/Theme/Theme.swift Line 131: static let cbbMint = Color(hex: "3EB489")
[ ] 2.2 Remove CBB case from themeColor Core/Theme/ViewModifiers.swift Line 220: case .cbb: return Theme.cbbMint

Verification: Build succeeds, no references to Theme.cbbMint remain.


Phase 3: Documentation Updates

Status: Not Started

Update all documentation to reflect CBB removal.

Status Task File Details
[ ] 3.1 Remove CBB from Supported Leagues table README.md Line 29: Remove CBB row from table
[ ] 3.2 Update league count in features README.md Line 7: Change "8 professional and college leagues" to reflect new count
[ ] 3.3 Remove CBB section from data scraping docs docs/DATA_SCRAPING.md Lines 114-125: Remove entire CBB section
[ ] 3.4 Update TO-DOS.md TO-DOS.md Remove or mark complete task #10

Verification: Documentation accurately reflects supported sports.


Phase 4: Verification & Testing

Status: Not Started

Ensure the app builds, runs, and all tests pass.

Status Task Command/Action Expected Result
[ ] 4.1 Full build xcodebuild ... build BUILD SUCCEEDED
[ ] 4.2 Run all tests xcodebuild ... test All tests pass
[ ] 4.3 Manual UI verification Launch in Simulator CBB does not appear in any sport picker, filter, or settings
[ ] 4.4 Verify Sport.supported count Code inspection Array has correct number of sports (7 remaining)

Build Command:

xcodebuild -project SportsTime.xcodeproj -scheme SportsTime -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' build

Test Command:

xcodebuild -project SportsTime.xcodeproj -scheme SportsTime -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.2' test

Phase 5: Commit & Cleanup

Status: Not Started

Status Task Details
[ ] 5.1 Stage all changes git add -A
[ ] 5.2 Create commit Message: chore: remove college basketball (CBB) from iOS app
[ ] 5.3 Push to remote If on feature branch
[ ] 5.4 Mark plan complete Update this file's status to "Complete"

Files Changed Summary

File Change Type Lines Affected
Core/Models/Domain/Sport.swift Modify Remove CBB from enum + 5 computed properties
Core/Theme/Theme.swift Modify Remove 1 color constant
Core/Theme/ViewModifiers.swift Modify Remove 1 switch case
README.md Modify Update table + feature count
docs/DATA_SCRAPING.md Modify Remove ~12 lines (CBB section)
TO-DOS.md Modify Remove/update task #10

Total: 6 files


Rollback Plan

If issues arise, CBB can be restored by:

  1. git revert <commit-hash> the removal commit
  2. No data migration needed (CBB had no data)

Notes

  • Views using Sport.supported will automatically exclude CBB once removed from the array
  • No CBB-specific views, view models, or tests exist
  • Python scraper already has no CBB implementation
  • No bundled JSON contains CBB data

Progress Log

Date Phase Notes
2026-01-11 Planning Plan created