fix(data): populate stadium timezone in scrapers and CloudKit sync

Stadium timezones were always null because scrapers weren't passing
the timezone from STADIUM_MAPPINGS to the Stadium constructor. This
fix propagates timezone data through the entire pipeline: scrapers,
CloudKit uploader, and Swift CloudKit model.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-01-20 22:45:30 -06:00
parent 166ad5d6f9
commit 12ddca4d10
9 changed files with 13 additions and 1 deletions

View File

@@ -672,6 +672,7 @@ class MLBScraper(BaseScraper):
country=info.country,
latitude=info.latitude,
longitude=info.longitude,
timezone=info.timezone,
surface="grass", # Most MLB stadiums
roof_type="open", # Most MLB stadiums
)

View File

@@ -387,6 +387,7 @@ class MLSScraper(BaseScraper):
country=info.country,
latitude=info.latitude,
longitude=info.longitude,
timezone=info.timezone,
surface="grass",
roof_type="open",
)

View File

@@ -648,6 +648,7 @@ class NBAScraper(BaseScraper):
country=info.country,
latitude=info.latitude,
longitude=info.longitude,
timezone=info.timezone,
surface="hardwood",
roof_type="dome",
)

View File

@@ -566,6 +566,7 @@ class NFLScraper(BaseScraper):
country=info.country,
latitude=info.latitude,
longitude=info.longitude,
timezone=info.timezone,
surface="turf", # Many NFL stadiums
roof_type="open", # Most outdoor
)

View File

@@ -644,6 +644,7 @@ class NHLScraper(BaseScraper):
country=info.country,
latitude=info.latitude,
longitude=info.longitude,
timezone=info.timezone,
surface="ice",
roof_type="dome",
)

View File

@@ -361,6 +361,7 @@ class NWSLScraper(BaseScraper):
country=info.country,
latitude=info.latitude,
longitude=info.longitude,
timezone=info.timezone,
surface="grass",
roof_type="open",
)

View File

@@ -362,6 +362,7 @@ class WNBAScraper(BaseScraper):
country=info.country,
latitude=info.latitude,
longitude=info.longitude,
timezone=info.timezone,
surface="hardwood",
roof_type="dome",
)

View File

@@ -545,6 +545,7 @@ class RecordDiffer:
- yearOpened: Year opened as int
- imageURL: URL string for stadium image
- sport: Sport code uppercase (e.g., "MLB")
- timezoneIdentifier: IANA timezone (e.g., "America/New_York")
"""
return CloudKitRecord(
record_name=stadium.id,
@@ -564,6 +565,7 @@ class RecordDiffer:
"capacity": stadium.capacity,
"yearOpened": stadium.opened_year,
"imageURL": stadium.image_url,
"timezoneIdentifier": stadium.timezone,
},
)