from apollo_utils.core.utils.ext_enum import ExtEnum, extend_enum class PushMessageOuterStatus(ExtEnum): DELIVERED = "delivered" FAILED = "failed" @extend_enum(PushMessageOuterStatus) class PushMessageStatus(ExtEnum): CREATED = "created" PROCESSING = "processing" class PushMessagePriority(str, ExtEnum): DEFAULT = "default" NORMAL = "normal" HIGH = "high" class MessageInclude(ExtEnum): CONTEXT = "context" META = "meta" DATA = "data" class MessageErrorType(str, ExtEnum): INVALID_DATA = "invalid_data_error" UNIQUE_CHECK = "unique_check_error" PUBLISH = "publish_error" class MessageUniqueCheckError(str, ExtEnum): DUPLICATED_REQUEST_DATA = ( "Request data contains multiple items with the same unique_check: key={} value={},\n" "the first one was used, another - skipped." ) DUPLICATED_DB_DATA = "Request item unique_check: key={} value={} interacts with existed one,\nthe item was skipped." NO_CHECK_VALUE = "Request item has no value by unique_check key={}.\nImpossible to check uniqueness, skipped." MESSAGES_CHUNK_MAX_SIZE = 100 EVENTS_CHUNK_MAX_SIZE = 100 TYPE_MAP = { "starred_track_top_playlist_entry": "PLAYLIST_ADDITIONS", "starred_track_top_chart_entry": "CHART_ADDITIONS", "starred_track_top_chart_exit": "CHART_REMOVALS", "starred_track_top_chart_move": "CHART_MAJOR_MOVES", "starred_track_starred_playlist_entry": "STARRED_PLAYLIST_ADDITIONS", "starred_playlist_tracklist_update": "PLAYLIST_UPDATE", "starred_track_starred_playlist_exit": "STARRED_PLAYLIST_REMOVALS", "starred_track_top_playlist_exit": "PLAYLIST_REMOVALS", "starred_track_starred_playlist_major_move": "STARRED_PLAYLIST_MAJOR_MOVES", "starred_track_top_playlist_major_move": "PLAYLIST_MAJOR_MOVES", "top_chart_tracklist_update": "CHART_UPDATE", } class FeedMessagesFilterSubject(ExtEnum): STARRED_TRACK_IN_PLAYLIST = "starred_track_in_playlist" STARRED_TRACK_IN_CHART = "starred_track_in_chart" STARRED_PLAYLIST = "starred_playlist" TOP_CHART = "top_chart" MESSAGE_DEFAULT_TTL = 2 * 60 * 60 # sec MESSAGE_MAX_TTL = 30 * 24 * 60 * 60 MESSAGE_META_MAX_SIZE = 50 * 1024 # bytes MESSAGE_DATA_MAX_SIZE = 150 * 1024 # bytes FEED_MESSAGE_SEARCH_SPACE_ADD_CHARACTERS = [ "+", "-", "=", ">", "<", "!", "(", ")", "{", "}", "[", "]", "^", '"', "~", "*", "?", ":", ";", "\\", "/", "@", "#", "$", "%", "&", "|", '"', ".", ",", ]