# Package name
name: 'playlists'
version: '1.0'

config-version: 2

# DB connection profile
profile: 'snowflake'

test-paths: ["tests"]
seed-paths: ["seeds"]

# Seeds configuration
seeds:
    playlists:
        +post-hook:
            - '{{ utils.grant_permissions() }}'
        playlist_filter_override:
            +column_types:
                store_id: number
                store_playlist_id: varchar
                added_date: timestamp_ntz

# Models to run
models:
    playlists:
        # Grant permissions to all tables
        +post-hook:
            - '{{ utils.grant_permissions() }}'

        # priority tier
        priority:
            +enabled: true
            +tags: ['priority_playlists']
            by_playlist:
                +enabled: true
            editorial_playlists:
                +enabled: true
            filtered_sources:
                +enabled: true
            global_sound_recording_isrc:
                +enabled: true
            placement_events_by_isrc_playlist:
                +enabled: true
            placements_by_isrc_playlist:
                +enabled: true
            placements_by_participant_isrc_playlist:
                +enabled: true
            placements_by_track_playlist_distributor:
                +enabled: true
            playlist_merged_to_playlist:
                +enabled: true
            followers:
                +enabled: true
            state:
                +enabled: true

        # non-priority tier
        non_priority:
            +enabled: true
            +tags: ['non_priority_playlists']
            by_playlist:
                +enabled: true
            editorial_playlists:
                +enabled: true
            filtered_sources:
                +enabled: true
            global_sound_recording_isrc:
                +enabled: true
            placement_events_by_isrc_playlist:
                +enabled: true
            placements_by_isrc_playlist:
                +enabled: true
            placements_by_participant_isrc_playlist:
                +enabled: true
            placements_by_track_playlist_distributor:
                +enabled: true
            playlist_merged_to_playlist:
                +enabled: true
            followers:
                +enabled: true
            state:
                +enabled: true

        # hourly tier models
        hourly:
            +enabled: true
            +tags: ['hourly_playlists']
            by_playlist:
                +enabled: true
            editorial_playlists:
                +enabled: true
            global_sound_recording_isrc:
                +enabled: true
            placement_events_by_isrc_playlist:
                +enabled: true
            placements_by_isrc_playlist:
                +enabled: true
            placements_by_participant_isrc_playlist:
                +enabled: true
            placements_by_track_playlist_distributor:
                +enabled: true
            playlist_merged_to_playlist:
                +enabled: true
            followers:
                +enabled: true
            state:
                +enabled: true
            filtered_sources:
                +enabled: true

        # unioned views
        unioned:
            +enabled: true
            by_playlist:
                +enabled: true
            editorial_playlists:
                +enabled: true
            placement_events_by_isrc_playlist:
                +enabled: true
            placements_by_isrc_playlist:
                +enabled: true
            placements_by_participant_isrc_playlist:
                +enabled: true
            placements_by_track_playlist_distributor:
                +enabled: true

vars:
    playlists:
        # ============================================================
        # State table vars (used by state pre-hook macros)
        # ============================================================
        playlists_priority_state: "PLAYLISTS_PRIORITY_STATE"
        playlists_non_priority_state: "PLAYLISTS_NON_PRIORITY_STATE"
        playlists_hourly_state: "PLAYLISTS_HOURLY_STATE"

        # ============================================================
        # Shared source table vars (used by state models across all tiers)
        # ============================================================
        amazon_playlist: "AMAZON_PLAYLIST"
        l_amazon_playlist: "L_AMAZON_PLAYLIST"
        l_amazon_playlist_history: "L_AMAZON_PLAYLIST_HISTORY"
        l_amazon_playlist_stat: "L_AMAZON_PLAYLIST_STAT"
        itunes_playlist: "ITUNES_PLAYLIST"
        l_itunes_playlist: "L_ITUNES_PLAYLIST"
        l_itunes_playlist_history: "L_ITUNES_PLAYLIST_HISTORY"
        l_itunes_playlist_stat: "L_ITUNES_PLAYLIST_STAT"
        deezer_playlist: "DEEZER_PLAYLIST"
        l_deezer_playlist: "L_DEEZER_PLAYLIST"
        l_deezer_playlist_history: "L_DEEZER_PLAYLIST_HISTORY"
        l_deezer_playlist_stat: "L_DEEZER_PLAYLIST_STAT"
        spotify_playlist: "SPOTIFY_PLAYLIST"
        l_spotify_playlist: "L_SPOTIFY_PLAYLIST"
        l_spotify_playlist_history: "L_SPOTIFY_PLAYLIST_HISTORY"
        l_spotify_playlist_stat: "L_SPOTIFY_PLAYLIST_STAT"
        youtube_playlist: "YOUTUBE_PLAYLIST"
        l_youtube_playlist: "L_YOUTUBE_PLAYLIST"
        l_youtube_playlist_history: "L_YOUTUBE_PLAYLIST_HISTORY"
        l_youtube_playlist_stat: "L_YOUTUBE_PLAYLIST_STAT"

        # Test target name for conditional logic in private models
        test_target_name: "test"
