Skip to content

fix(seaworld): merge same-name shows within a park into one entity - #605

Merged
cubehouse merged 1 commit into
mainfrom
fix/seaworld-same-name-shows
Sep 27, 2026
Merged

cubehouse merged 1 commit into
mainfrom
fix/seaworld-same-name-shows

Conversation

@cubehouse

Copy link
Copy Markdown
Member

What

The SeaWorld/Sesame Place feed publishes some shows more than once under the same name, and nothing tells the copies apart: same category and subtype, no tag, no coordinates. Examples:

  • SeaWorld Orlando: "Sea Lions: Flippers, Facts & Fun" ×2. One copy carries the day's showtimes, the other none.
  • Sesame Place San Diego: most character meets repeat ("Meet Abby Cadabby" ×6, "Meet Oscar the Grouch" ×5, "Meet Grover" ×5, …).
  • Sesame Place Philadelphia: "Meet Dinger" ×3, "Meet Abby Cadabby" ×5, …

Each copy became its own entity, so guests saw a row of identical entries, most with no schedule.

Fix

mapShowAliases() extends the existing ASL fold (mapAslShowsToBase stays, as a wrapper):

  • Within one park, every copy except the lowest id maps to the lowest id. The canonical id is stable for as long as the copies exist, so the entity doesn't move between days.
  • ASL listings map to that canonical id, so an interpreted performance of a duplicated show still lands on one entity.
  • The copies' showtimes merge into the canonical show, de-duplicated by start/end/type. An ASL performance beside the regular one at the same time remains two listings by design.
  • A copy's closure row is ignored rather than applied. A leftover copy saying "Closed" must not shut a show its twin is listing performances for.
  • Grouping is per park, never across parks.

Verification

  • Live before/after across the seven SeaWorld family destinations: 802 → 716 entities. The 86 removed ids are each folded into a surviving same-name show in the same park, checked per item: 78 Sesame Place character meets (61 San Diego, 17 Philadelphia), 4 SeaWorld San Antonio, 3 SeaWorld San Diego, 1 SeaWorld Orlando. No ids are added and no names change. No show name is shared across parks within any multi-park destination today.

  • New tests with the real shapes:

    • the alias map, including ASL→canonical
    • order independence
    • one entity per name
    • merged, de-duplicated showtimes
    • a copy's closure ignored
    • no merge across two parks of one destination

    Removing the duplicate skip fails the entity test. 135 pass. tsc is clean for src and tests.

Caching

The alias map is computed from the cached park detail on each build. No cached value changes shape, so no cacheVersion bump.

🤖 Generated with Claude Code

The feed publishes some shows more than once under the same name, with
nothing to tell the copies apart (same category and subtype, no tag, no
coordinates): SeaWorld Orlando lists "Sea Lions: Flippers, Facts & Fun"
twice, one copy carrying the day's showtimes and the other none, and
Sesame Place San Diego lists most character meets several times ("Meet
Abby Cadabby" x6). Each copy became its own entity, so guests saw a row
of identical entries, most of them with no schedule.

mapShowAliases() extends the ASL fold: within one park, every copy but
the lowest id maps to the lowest id (stable for as long as the copies
exist), and ASL listings map to that canonical id. The copies' showtimes
merge into the canonical show, de-duplicated by start/end/type; a copy's
closure row is ignored rather than shutting a show its twin lists
performances for. Grouping is per park, never across parks.

Live before/after across the seven SeaWorld family destinations: 802 ->
716 entities, 86 copies folded into a surviving same-name show in the
same park (78 Sesame Place character meets), no ids added, no names
changed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@cubehouse
cubehouse merged commit d951650 into main Sep 27, 2026
4 checks passed
@cubehouse
cubehouse deleted the fix/seaworld-same-name-shows branch September 27, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant