-- Restore the prior tighter CHECK constraints (pre-discover).
-- This will fail if any rows currently have system_variant = 'discover';
-- operator must clear those rows manually before 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'))
    );

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 = 'songs_like_artist' AND seed_artist_id IS NOT NULL)
    );
