import datetime from apollo_utils.core.utils.ext_enum import ExtEnum from apollo_utils.core.utils.singleton import SingleValue APP_NAME = "charts_messages" ENV_PROD = "prod" USER_DATA_HEADER = {"X-App-Slug": "apollo"} class Service(ExtEnum): USER_DATA = "USERDATA" GATE_API = "GATE" class GetEventInclude(ExtEnum): CONTEXT = "context" META = "meta" DATA = "data" ALL = "all" class PostFavoritesInclude(ExtEnum): SETTINGS = "settings" DEVICES = "devices" class Changelog(ExtEnum): ENTRY = "entry" EXIT = "exit" MOVE = "move" UPDATE = "update" TRACKS_TO_PROCESS = { Changelog.ENTRY: "additions", Changelog.EXIT: "removals", Changelog.MOVE: "moves" } class UserSettings(ExtEnum): V1 = "1" V2 = "2" GLOBAL_CC_SETTINGS_NAME = "global" GLOBAL_CC_CHART_NAME = "worldwide" TTL = int(datetime.timedelta(minutes=30).total_seconds()) class MessageMetaViews(ExtEnum): FEED = "feed_message" PUSH = "push_message" MessageMetaType = { Changelog.ENTRY: "starred_track_top_chart_entry", Changelog.EXIT: "starred_track_top_chart_exit", Changelog.MOVE: "starred_track_top_chart_move", Changelog.UPDATE: "top_chart_tracklist_update" } NO_SETTINGS_HANDLER = SingleValue() CHUNK_SIZE = 100 SUBJECT = "starred_track_in_chart" CHART_UPDATE_SUBJECT = "top_chart" UNIQUE_CHECK_KEY = "external_id"