import datetime from apollo_utils.core.constants.dsp import DSP from apollo_utils.core.utils.ext_enum import ExtEnum DSP_PLAYLISTS_ID_PREFIX = { DSP.SPOTIFY.value: "", DSP.APPLE.value: "pl.", DSP.AMAZON.value: "" } OWNER_CATEGORY_ID_TO_NAME_MAPPING = { 1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine", 10: "ten", } PlaylistUriPrefix = { DSP.SPOTIFY: "spotify:playlist:", DSP.APPLE: "/v1/catalog/{}/playlists/", DSP.AMAZON: "m.media-amazon.com/images/I/{}" } class SpecificItem(ExtEnum): PERSONALISED = "personalised" NOT_PERSONALISED = "not_personalised" IS_NOT_TOP_TRACK_FOR_ISRC = "is_not_top_track_for_isrc" IS_TOP_TRACK_FOR_ISRC = "is_not_top_track_for_isrc" BlUE_DOT = "blue_dot" NOT_BLUE_DOT = "not_blue_dot" UNIX_EPOCH_DATE = "unix_epoch_date" NOT_UNIX_EPOCH_DATE = "not_unix_epoch_date" SPECIFIC_ITEM_MAPPING = { SpecificItem.PERSONALISED: {"playlist.is_personalised": True}, SpecificItem.NOT_PERSONALISED: {"playlist.is_personalised": False}, SpecificItem.IS_NOT_TOP_TRACK_FOR_ISRC: {"is_top_track_for_isrc": False}, SpecificItem.IS_TOP_TRACK_FOR_ISRC: {"is_top_track_for_isrc": True}, SpecificItem.BlUE_DOT: { "is_top_track_for_isrc": True, "num_days_on": 0, "playlist.is_personalised": False, "last_added_date_time": datetime.date.today().isoformat() }, SpecificItem.NOT_BLUE_DOT: { "is_top_track_for_isrc": True, "num_days_on": 0, "playlist.is_personalised": False, "last_added_date_time": (datetime.date.today() - datetime.timedelta(days=1)).isoformat() }, SpecificItem.UNIX_EPOCH_DATE: { "earliest_position_date_time": "1970-01-01" }, SpecificItem.NOT_UNIX_EPOCH_DATE: { "earliest_position_date_time": "1970-01-02" } }