from apollo_utils.core.utils.ext_enum import ExtEnum, extend_enum from enum import Enum class SortOrder(ExtEnum): ASC = "asc" DESC = "desc" class TrackPlaylistsOrderV0(ExtEnum): CURR_POSITION = "current_position" CURR_POSITION_DESC = "-current_position" PLAYLIST_ID = "id" PLAYLIST_ID_DESC = "-id" @extend_enum(TrackPlaylistsOrderV0) class TrackPlaylistsOrder(ExtEnum): """Track playlists order by values.""" ADDED_DATE = "added_date" ADDED_DATE_DESC = "-added_date" @extend_enum(TrackPlaylistsOrder) class TrackPlaylistsOrderV2(Enum): """Track playlists order V2 values.""" PLAYLIST_STREAMS = "playlist_streams" PLAYLIST_STREAMS_DESC = "-playlist_streams" FOLLOWERS = "followers" FOLLOWERS_DESC = "-followers" @extend_enum(TrackPlaylistsOrderV0) class TrackPlaylistsOrderSpotifyV2(Enum): """Track playlists order V2 values.""" PLAYLIST_STREAMS = "playlist_streams" PLAYLIST_STREAMS_DESC = "-playlist_streams" FOLLOWERS = "followers" FOLLOWERS_DESC = "-followers" class TrackPreviousPlaylistsOrder(ExtEnum): """Track playlists order by values.""" REMOVED_DATE = "removed_date" REMOVED_DATE_DESC = "-removed_date" PLAYLIST_ID = "id" PLAYLIST_ID_DESC = "-id" FOLLOWERS = "followers" FOLLOWERS_DESC = "-followers" class NMFTrackOrder(ExtEnum): RANK = "top_market" POSITION = "position" CODE = "code" class HHTrackOrder(ExtEnum): RANK = "top_market" POSITION = "position" CODE = "code" class PlaylistTracklistOrder: """Playlist placements order by values.""" ADDED_DATE = "added_date" CURR_POSITION = "current_position" ADDED_DATE_DESC = "-added_date" CURR_POSITION_DESC = "-current_position" ALL = (ADDED_DATE, ADDED_DATE_DESC, CURR_POSITION, CURR_POSITION_DESC)