-- Provenance as standard (milestone #127, Scribe #1270).
--
-- #1249 introduced pick_kind as a For You one-off ('taste'/'fresh').
-- The mechanism — stamp WHY a track is in the snapshot at build time,
-- freeze it onto the play at ingestion, break it down in metrics — is
-- now the standard for every system mix, so the CHECK vocabulary
-- widens to cover:
--
--   taste / fresh          For You head vs freshness-injection tail
--   dormant / cross_user / random
--                          Discover's three candidate buckets — makes
--                          the 40/30/30 allocation measurable instead
--                          of a guess
--   tier1 / tier2 / tier3  the tiered-eligibility ladder (project rule
--                          #131): tier 1 pins the mix's exact desire,
--                          each higher tier steps back a little. Tier
--                          provenance is how we measure what the
--                          step-back trades away.
--
-- Postgres CHECK whitelists can't be altered in place: DROP + re-ADD
-- with the expanded list, in the same migration.

ALTER TABLE playlist_tracks
    DROP CONSTRAINT playlist_tracks_pick_kind_check;
ALTER TABLE playlist_tracks
    ADD CONSTRAINT playlist_tracks_pick_kind_check
        CHECK (pick_kind IN (
            'taste', 'fresh',
            'dormant', 'cross_user', 'random',
            'tier1', 'tier2', 'tier3'
        ));

ALTER TABLE play_events
    DROP CONSTRAINT play_events_pick_kind_check;
ALTER TABLE play_events
    ADD CONSTRAINT play_events_pick_kind_check
        CHECK (pick_kind IN (
            'taste', 'fresh',
            'dormant', 'cross_user', 'random',
            'tier1', 'tier2', 'tier3'
        ));
