from pathlib import PurePosixPath # Data keys RAW_ARTIST_ID_KEY: str = "cm_artist_id" RAW_TRACK_ID_KEY: str = "cm_track_id" # Tables ARTIST_SPOTIFY_TRACK_TABLE = "artist_spotify_tracks" ARTIST_SPOTIFY_ALBUM_TABLE = "artist_spotify_albums" ARTIST_EXTERNAL_LINKS_TABLE = "artist_external_links" ARTIST_YOUTUBE_VIDEOS_TABLE = "artist_youtube_videos" ARTIST_TIKTOK_VIDEOS_TABLE = "artist_tiktok_videos" ARTIST_SOUNDCLOUD_TRACK_TABLE = "artist_soundcloud_tracks" TRACK_TIKTOK_VIDEOS_TABLE = "track_tiktok_videos" TRACK_YOUTUBE_VIDEOS_TABLE = "track_youtube_videos" TRACK_EXTERNAL_LINKS_TABLE = "track_external_links" # S3 keys BASE_PATH = PurePosixPath("aggregates") # ------------ Artist section ------------ ARTIST_BASE_PATH = BASE_PATH / "artist" # tracks ARTIST_TRACKS_DATA_PATH = ARTIST_BASE_PATH / "tracks" # spotify ARTIST_TRACKS_SPOTIFY_DATA_PATH = ARTIST_TRACKS_DATA_PATH / "spotify" ARTIST_TRACKS_SPOTIFY_RAW_DATA_PATH = ARTIST_TRACKS_SPOTIFY_DATA_PATH / "raw_data" ARTIST_TRACKS_SPOTIFY_AGG_DATA_PATH = ARTIST_TRACKS_SPOTIFY_DATA_PATH / "agg_data" # soundcloud ARTIST_TRACKS_SOUNDCLOUD_DATA_PATH = ARTIST_TRACKS_DATA_PATH / "soundcloud" ARTIST_TRACKS_SOUNDCLOUD_RAW_DATA_PATH = ARTIST_TRACKS_SOUNDCLOUD_DATA_PATH / "raw_data" ARTIST_TRACKS_SOUNDCLOUD_AGG_DATA_PATH = ARTIST_TRACKS_SOUNDCLOUD_DATA_PATH / "agg_data" # albums ARTIST_ALBUMS_DATA_PATH = ARTIST_BASE_PATH / "albums" # spotify ARTIST_ALBUMS_SPOTIFY_DATA_PATH = ARTIST_ALBUMS_DATA_PATH / "spotify" ARTIST_ALBUMS_SPOTIFY_RAW_DATA_PATH = ARTIST_ALBUMS_SPOTIFY_DATA_PATH / "raw_data" ARTIST_ALBUMS_SPOTIFY_AGG_DATA_PATH = ARTIST_ALBUMS_SPOTIFY_DATA_PATH / "agg_data" # external links ARTIST_EXTERNAL_LINKS_BASE_PATH = ARTIST_BASE_PATH / "external_links" ARTIST_EXTERNAL_LINKS_RAW_DATA_PATH = ARTIST_EXTERNAL_LINKS_BASE_PATH / "raw_data" ARTIST_EXTERNAL_LINKS_AGG_DATA_PATH = ARTIST_EXTERNAL_LINKS_BASE_PATH / "agg_data" # videos ARTIST_VIDEOS_BASE_PATH = ARTIST_BASE_PATH / "videos" # youtube ARTIST_VIDEOS_YOUTUBE_BASE_PATH = ARTIST_VIDEOS_BASE_PATH / "youtube" ARTIST_VIDEOS_YOUTUBE_RAW_DATA_PATH = ARTIST_VIDEOS_YOUTUBE_BASE_PATH / "raw_data" ARTIST_VIDEOS_YOUTUBE_AGG_DATA_PATH = ARTIST_VIDEOS_YOUTUBE_BASE_PATH / "agg_data" # tiktok ARTIST_VIDEOS_TIKTOK_BASE_PATH = ARTIST_VIDEOS_BASE_PATH / "tiktok" ARTIST_VIDEOS_TIKTOK_RAW_DATA_PATH = ARTIST_VIDEOS_TIKTOK_BASE_PATH / "raw_data" ARTIST_VIDEOS_TIKTOK_AGG_DATA_PATH = ARTIST_VIDEOS_TIKTOK_BASE_PATH / "agg_data" # ------------ Track section ------------ TRACK_BASE_PATH = BASE_PATH / "track" # videos TRACK_VIDEOS_BASE_PATH = TRACK_BASE_PATH / "videos" # tiktok TRACK_VIDEOS_TIKTOK_BASE_PATH = TRACK_VIDEOS_BASE_PATH / "tiktok" TRACK_VIDEOS_TIKTOK_RAW_DATA_PATH = TRACK_VIDEOS_TIKTOK_BASE_PATH / "raw_data" TRACK_VIDEOS_TIKTOK_AGG_DATA_PATH = TRACK_VIDEOS_TIKTOK_BASE_PATH / "agg_data" # youtube TRACK_VIDEOS_YOUTUBE_BASE_PATH = TRACK_VIDEOS_BASE_PATH / "youtube" TRACK_VIDEOS_YOUTUBE_RAW_DATA_PATH = TRACK_VIDEOS_YOUTUBE_BASE_PATH / "raw_data" TRACK_VIDEOS_YOUTUBE_AGG_DATA_PATH = TRACK_VIDEOS_YOUTUBE_BASE_PATH / "agg_data" # external links TRACK_EXTERNAL_LINKS_BASE_PATH = TRACK_BASE_PATH / "external_links" TRACK_EXTERNAL_LINKS_RAW_DATA_PATH = TRACK_EXTERNAL_LINKS_BASE_PATH / "raw_data" TRACK_EXTERNAL_LINKS_AGG_DATA_PATH = TRACK_EXTERNAL_LINKS_BASE_PATH / "agg_data"