from apollo_utils.core.utils.ext_enum import ExtEnum, extend_enum from server.constants.playlists.delphi.core import include, sort_by from server.constants.playlists.delphi.core.endpoint_allowed_constant_params import EndpointAllowedConstantParams from server.utils.common import extend_sorting_dict_mapper_with_opposite_key_value_pairs @extend_enum( include.Playlists, include.NumTracks, include.PlaylistDates, include.MetaOwnerCategories, include.StreamsForPeriod ) class _PublicTrackPositionsPreviousPlaylistsInclude(ExtEnum): pass @extend_enum(sort_by.RemovedDateTime, sort_by.RemovedDateTimeDesc, sort_by.Id) class _PublicTrackPositionsPreviousPlaylistsSortBy(ExtEnum): pass TrackPositionsPreviousPlaylists = EndpointAllowedConstantParams( include=_PublicTrackPositionsPreviousPlaylistsInclude, sort_by=_PublicTrackPositionsPreviousPlaylistsSortBy ) TrackPositionsPreviousPlaylistsApolloToDelphiProcessedFieldsSortByMapping = { sort_by.Id.ID.value: sort_by.PlaylistId.PLAYLIST_ID.value, sort_by.RemovedDate.REMOVED_DATE.value: sort_by.RemovedDateTime.REMOVED_DATE_TIME.value, sort_by.Followers.FOLLOWERS.value: sort_by.Followers.FOLLOWERS.value, } extend_sorting_dict_mapper_with_opposite_key_value_pairs( TrackPositionsPreviousPlaylistsApolloToDelphiProcessedFieldsSortByMapping )