Add canonical ID pipeline and fix UUID consistency for CloudKit sync
- Add local canonicalization pipeline (stadiums, teams, games) that generates deterministic canonical IDs before CloudKit upload - Fix CanonicalSyncService to use deterministic UUIDs from canonical IDs instead of random UUIDs from CloudKit records - Add SyncStadium/SyncTeam/SyncGame types to CloudKitService that preserve canonical ID relationships during sync - Add canonical ID field keys to CKModels for reading from CloudKit records - Bundle canonical JSON files (stadiums_canonical, teams_canonical, games_canonical, stadium_aliases) for consistent bootstrap data - Update BootstrapService to prefer canonical format files over legacy format This ensures all entities use consistent deterministic UUIDs derived from their canonical IDs, preventing duplicate records when syncing CloudKit data with bootstrapped local data. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -554,7 +554,6 @@ nba_202526_lal_sas_0107,NBA,2025-26,2026-01-07,9:30p,San Antonio Spurs,Los Angel
|
||||
nba_202526_mil_gsw_0107,NBA,2025-26,2026-01-07,10:00p,Golden State Warriors,Milwaukee Bucks,GSW,MIL,Chase Center,basketball-reference.com,False,
|
||||
nba_202526_hou_por_0107,NBA,2025-26,2026-01-07,10:00p,Portland Trail Blazers,Houston Rockets,POR,HOU,Moda Center,basketball-reference.com,False,
|
||||
nba_202526_ind_cho_0108,NBA,2025-26,2026-01-08,7:00p,Charlotte Hornets,Indiana Pacers,CHO,IND,Spectrum Center,basketball-reference.com,False,
|
||||
nba_202526_mia_chi_0108,NBA,2025-26,2026-01-08,8:00p,Chicago Bulls,Miami Heat,CHI,MIA,United Center,basketball-reference.com,False,
|
||||
nba_202526_cle_min_0108,NBA,2025-26,2026-01-08,8:00p,Minnesota Timberwolves,Cleveland Cavaliers,MIN,CLE,Target Center,basketball-reference.com,False,
|
||||
nba_202526_dal_uta_0108,NBA,2025-26,2026-01-08,9:00p,Utah Jazz,Dallas Mavericks,UTA,DAL,Delta Center,basketball-reference.com,False,
|
||||
nba_202526_tor_bos_0109,NBA,2025-26,2026-01-09,7:00p,Boston Celtics,Toronto Raptors,BOS,TOR,TD Garden,basketball-reference.com,False,
|
||||
@@ -612,9 +611,9 @@ nba_202526_uta_dal_0115,NBA,2025-26,2026-01-15,8:30p,Dallas Mavericks,Utah Jazz,
|
||||
nba_202526_nyk_gsw_0115,NBA,2025-26,2026-01-15,10:00p,Golden State Warriors,New York Knicks,GSW,NYK,Chase Center,basketball-reference.com,False,
|
||||
nba_202526_atl_por_0115,NBA,2025-26,2026-01-15,10:00p,Portland Trail Blazers,Atlanta Hawks,POR,ATL,Moda Center,basketball-reference.com,False,
|
||||
nba_202526_cho_lal_0115,NBA,2025-26,2026-01-15,10:30p,Los Angeles Lakers,Charlotte Hornets,LAL,CHO,Crypto.com Arena,basketball-reference.com,False,
|
||||
nba_202526_chi_brk_0116,NBA,2025-26,2026-01-16,7:00p,Brooklyn Nets,Chicago Bulls,BRK,CHI,Barclays Center,basketball-reference.com,False,
|
||||
nba_202526_nop_ind_0116,NBA,2025-26,2026-01-16,7:00p,Indiana Pacers,New Orleans Pelicans,IND,NOP,Gainbridge Fieldhouse,basketball-reference.com,False,
|
||||
nba_202526_cle_phi_0116,NBA,2025-26,2026-01-16,7:00p,Philadelphia 76ers,Cleveland Cavaliers,PHI,CLE,Xfinity Mobile Arena,basketball-reference.com,False,
|
||||
nba_202526_chi_brk_0116,NBA,2025-26,2026-01-16,7:30p,Brooklyn Nets,Chicago Bulls,BRK,CHI,Barclays Center,basketball-reference.com,False,
|
||||
nba_202526_lac_tor_0116,NBA,2025-26,2026-01-16,7:30p,Toronto Raptors,Los Angeles Clippers,TOR,LAC,Scotiabank Arena,basketball-reference.com,False,
|
||||
nba_202526_min_hou_0116,NBA,2025-26,2026-01-16,9:30p,Houston Rockets,Minnesota Timberwolves,HOU,MIN,Toyota Center,basketball-reference.com,False,
|
||||
nba_202526_was_sac_0116,NBA,2025-26,2026-01-16,10:00p,Sacramento Kings,Washington Wizards,SAC,WAS,Golden 1 Center,basketball-reference.com,False,
|
||||
@@ -722,9 +721,9 @@ nba_202526_sac_bos_0130,NBA,2025-26,2026-01-30,7:30p,Boston Celtics,Sacramento K
|
||||
nba_202526_mem_nop_0130,NBA,2025-26,2026-01-30,7:30p,New Orleans Pelicans,Memphis Grizzlies,NOP,MEM,Smoothie King Center,basketball-reference.com,False,
|
||||
nba_202526_por_nyk_0130,NBA,2025-26,2026-01-30,7:30p,New York Knicks,Portland Trail Blazers,NYK,POR,Madison Square Garden (IV),basketball-reference.com,False,
|
||||
nba_202526_chi_mia_0130,NBA,2025-26,2026-01-30,8:00p,Miami Heat,Chicago Bulls,MIA,CHI,Kaseya Center,basketball-reference.com,False,
|
||||
nba_202526_lac_den_0130,NBA,2025-26,2026-01-30,9:00p,Denver Nuggets,Los Angeles Clippers,DEN,LAC,Ball Arena,basketball-reference.com,False,
|
||||
nba_202526_cle_pho_0130,NBA,2025-26,2026-01-30,9:00p,Phoenix Suns,Cleveland Cavaliers,PHO,CLE,Mortgage Matchup Center,basketball-reference.com,False,
|
||||
nba_202526_brk_uta_0130,NBA,2025-26,2026-01-30,9:30p,Utah Jazz,Brooklyn Nets,UTA,BRK,Delta Center,basketball-reference.com,False,
|
||||
nba_202526_lac_den_0130,NBA,2025-26,2026-01-30,10:00p,Denver Nuggets,Los Angeles Clippers,DEN,LAC,Ball Arena,basketball-reference.com,False,
|
||||
nba_202526_det_gsw_0130,NBA,2025-26,2026-01-30,10:00p,Golden State Warriors,Detroit Pistons,GSW,DET,Chase Center,basketball-reference.com,False,
|
||||
nba_202526_sas_cho_0131,NBA,2025-26,2026-01-31,3:00p,Charlotte Hornets,San Antonio Spurs,CHO,SAS,Spectrum Center,basketball-reference.com,False,
|
||||
nba_202526_atl_ind_0131,NBA,2025-26,2026-01-31,7:00p,Indiana Pacers,Atlanta Hawks,IND,ATL,Gainbridge Fieldhouse,basketball-reference.com,False,
|
||||
@@ -2707,7 +2706,7 @@ mlb_2026_tb_bos_0718,MLB,2026,2026-07-18,20:10,Boston Red Sox,Tampa Bay Rays,BOS
|
||||
mlb_2026_tex_atl_0718,MLB,2026,2026-07-18,20:10,Atlanta Braves,Texas Rangers,ATL,TEX,Truist Park,statsapi.mlb.com,False,
|
||||
mlb_2026_mia_mil_0718,MLB,2026,2026-07-18,20:10,Milwaukee Brewers,Miami Marlins,MIL,MIA,American Family Field,statsapi.mlb.com,False,
|
||||
mlb_2026_sf_sea_0718,MLB,2026,2026-07-18,23:15,Seattle Mariners,San Francisco Giants,SEA,SF,T-Mobile Park,statsapi.mlb.com,False,
|
||||
mlb_2026_lad_nyy_0718,MLB,2026,2026-07-18,23:15,New York Yankees,Los Angeles Dodgers,NYY,LAD,Yankee Stadium,statsapi.mlb.com,False,
|
||||
mlb_2026_lad_nyy_0718,MLB,2026,2026-07-18,00:08,New York Yankees,Los Angeles Dodgers,NYY,LAD,Yankee Stadium,statsapi.mlb.com,False,
|
||||
mlb_2026_wsh_ath_0718,MLB,2026,2026-07-18,02:05,Athletics,Washington Nationals,ATH,WSH,Sutter Health Park,statsapi.mlb.com,False,
|
||||
mlb_2026_det_laa_0718,MLB,2026,2026-07-18,02:07,Los Angeles Angels,Detroit Tigers,LAA,DET,Angel Stadium,statsapi.mlb.com,False,
|
||||
mlb_2026_pit_cle_0718,MLB,2026,2026-07-18,07:33,Cleveland Guardians,Pittsburgh Pirates,CLE,PIT,Progressive Field,statsapi.mlb.com,False,
|
||||
@@ -3520,7 +3519,7 @@ mlb_2026_mil_pit_0917,MLB,2026,2026-09-17,16:35,Pittsburgh Pirates,Milwaukee Bre
|
||||
mlb_2026_lad_cin_0917,MLB,2026,2026-09-17,16:40,Cincinnati Reds,Los Angeles Dodgers,CIN,LAD,Great American Ball Park,statsapi.mlb.com,False,
|
||||
mlb_2026_ath_tb_0917,MLB,2026,2026-09-17,17:10,Tampa Bay Rays,Athletics,TB,ATH,Tropicana Field,statsapi.mlb.com,False,
|
||||
mlb_2026_sd_col_0917,MLB,2026,2026-09-17,19:10,Colorado Rockies,San Diego Padres,COL,SD,Coors Field,statsapi.mlb.com,False,
|
||||
mlb_2026_phi_nym_0917,MLB,2026,2026-09-17,23:10,New York Mets,Philadelphia Phillies,NYM,PHI,Citi Field,statsapi.mlb.com,False,
|
||||
mlb_2026_phi_nym_0917,MLB,2026,2026-09-17,23:15,New York Mets,Philadelphia Phillies,NYM,PHI,Citi Field,statsapi.mlb.com,False,
|
||||
mlb_2026_det_cws_0917,MLB,2026,2026-09-17,23:40,Chicago White Sox,Detroit Tigers,CWS,DET,Rate Field,statsapi.mlb.com,False,
|
||||
mlb_2026_bos_tex_0917,MLB,2026,2026-09-17,00:05,Texas Rangers,Boston Red Sox,TEX,BOS,Globe Life Field,statsapi.mlb.com,False,
|
||||
mlb_2026_min_laa_0917,MLB,2026,2026-09-17,01:38,Los Angeles Angels,Minnesota Twins,LAA,MIN,Angel Stadium,statsapi.mlb.com,False,
|
||||
|
||||
|
Can't render this file because it is too large.
|
Reference in New Issue
Block a user