from apollo_utils.core.utils.ext_enum import ExtEnum from server.legacy.core.constants import AMAZON, APPLE, SPOTIFY, TIKTOK DAYS_RESULT_KEYS = ["prev_day", "current_day"] WEEKS_RESULT_KEYS = ["prev_week", "current_week"] DEFAULT_DAYS_RESULT_DICT = {field: 0 for field in DAYS_RESULT_KEYS} DEFAULT_WEEKS_RESULT_DICT = {field: 0 for field in WEEKS_RESULT_KEYS} DETAILED_STREAMS_SPOTIFY_SOURCES_V1 = { "album": "album", "artist": "artist", "chart": "chart", "collection": "collection", "daily_mix": "daily_mix", "discover_weekly": "discover_weekly", "other": "other", "playlist": "others_playlist", "queue": "play_queue", "radio": "radio", "release_radar": "release_radar", "search": "search", } DETAILED_STREAMS_APPLE_SOURCES_V1 = ["music_kit", "search", "other", "discovery", "library"] DETAILED_STREAMS_AMAZON_SOURCES_V1 = { "collection": [ "album", "artist", "auto_playlist", "genre", "recently_added", "recently_played", "songs", "track", "user_playlist", "personalize_playlist", ], "radio": [ "amf_station", "amf_station_seed", "custom_mix", "error", "prime_station", "prime_station_seed", "similarity", "similarity_station", "station", "undefined", "unknown", "unl_station_seed", "unlimited_station", "unlimited_station_se", ], "playlist": [ "gno_prime_playlist", "gno_unl_playlist", "golden_playlist", "prime_playlist", "shared_playlist", "unlimited_playlist", ], "search": ["search"], } DETAILED_STREAMS_APPLE_SOURCES_V2 = [ "music_kit", "search", "other", "discovery", "library", "external", "now_playing", "voice", ] DETAILED_STREAMS_AMAZON_SOURCES_V2 = { "user_playlist": ["recently_added", "recently_played", "user_playlist", "genre", "auto_playlist"], "artist": ["artist"], "album": ["album"], "songs": ["songs", "track"], "station": [ "amf_station", "amf_station_seed", "custom_mix", "error", "prime_station", "prime_station_seed", "similarity", "similarity_station", "station", "undefined", "unknown", "unl_station_seed", "unlimited_station", "unlimited_station_se", ], "playlist": [ "gno_prime_playlist", "gno_unl_playlist", "golden_playlist", "prime_playlist", "shared_playlist", "unlimited_playlist", "personalize_playlist", ], "search": ["search"], } DETAILED_STREAMS_MONITORING_SOURCE_V1 = { SPOTIFY: DETAILED_STREAMS_SPOTIFY_SOURCES_V1, APPLE: DETAILED_STREAMS_APPLE_SOURCES_V1, AMAZON: DETAILED_STREAMS_AMAZON_SOURCES_V1, } DETAILED_STREAMS_MONITORING_SOURCE_V2 = { SPOTIFY: DETAILED_STREAMS_SPOTIFY_SOURCES_V1, APPLE: DETAILED_STREAMS_APPLE_SOURCES_V2, AMAZON: DETAILED_STREAMS_AMAZON_SOURCES_V2, } DETAILED_STREAMS_MONITORING_BASE = {"total": "streams"} ACTIVE_STREAM_FIELDS = ["album", "artist", "collection", "search", "play_queue"] NON_PLAYLIST_STREAM_FIELDS = ["chart", "radio", "other", "unknown"] PLAYLIST_STREAM_FIELDS = ["daily_mix", "discover_weekly", "others_playlist", "release_radar"] CURRENT_STREAMS = "current_streams" PREV_STREAMS = "prev_streams" DATE_RANGES_FIELDS_NAMES = [CURRENT_STREAMS, PREV_STREAMS] class MetricsTrendsValuesMetric: VIEWS = "video_views" CREATIONS = "creations" STREAMS = "streams" ALL_FIELDS = (VIEWS, CREATIONS, STREAMS) DSP_MAPPING = {VIEWS: TIKTOK, CREATIONS: TIKTOK, STREAMS: SPOTIFY} class YoutubeVideosOrder(ExtEnum): VIEWS = "views" VIDEO_TITLE = "video_title" VIEWS_DESC = "-views" VIDEO_TITLE_DESC = "-video_title" class MarketOrder(ExtEnum): VIEWS = "views" VIDEO_TITLE = "market" VIEWS_DESC = "-views" VIDEO_TITLE_DESC = "-market" TWO_WEEKS_DAYS = 14 DEFAULT_PAGINATION_LIMIT = 10 TIKTOK_METRICS_LIST = [MetricsTrendsValuesMetric.VIEWS, MetricsTrendsValuesMetric.CREATIONS]