-- Reverts to the 0021 constraint set (for_you, songs_like_artist,
-- discover only). Fails if any playlists row still has one of the
-- five new system_variant values — delete/rebuild system playlists
-- first if rolling back.

ALTER TABLE playlists DROP CONSTRAINT IF EXISTS playlists_kind_variant_consistent;
ALTER TABLE playlists
    ADD CONSTRAINT playlists_kind_variant_consistent CHECK (
        (kind = 'user'   AND system_variant IS NULL)
        OR
        (kind = 'system' AND system_variant IN ('for_you', 'songs_like_artist', 'discover'))
    );

ALTER TABLE playlists DROP CONSTRAINT IF EXISTS playlists_seed_consistent;
ALTER TABLE playlists
    ADD CONSTRAINT playlists_seed_consistent CHECK (
        (system_variant IS NULL                 AND seed_artist_id IS NULL)
        OR
        (system_variant = 'for_you'             AND seed_artist_id IS NULL)
        OR
        (system_variant = 'discover'            AND seed_artist_id IS NULL)
        OR
        (system_variant = 'songs_like_artist'   AND seed_artist_id IS NOT NULL)
    );
