"""Constants used for DDEX generation.""" from enum import Enum from soundrecording_utils.metadata.types import ExplicitStatus ORCHARD_PARTY_ID = 'PADPIDA2012041004F' ORCHARD_PARTY_REFERENCE = 'PTHEORCHARD' ORCHARD_PARTY_NAME = 'The Orchard Enterprises' ORCHARD_TRADING_ID = 'The Orchard Enterprises, LLC' YOUTUBE_PARTY_ID = 'PADPIDA2015120100H' YOUTUBE_PARTY_NAME = 'YouTube_ContentID' TIKTOK_PARTY_ID = 'PADPIDA2018082301A' TIKTOK_PARTY_NAME = 'ByteDance Fingerprinting' YOUTUBE_DDEX_HEADER_TEST_CONTROL_TYPE = 'TestMessage' YOUTUBE_DDEX_HEADER_LIVE_CONTROL_TYPE = 'LiveMessage' DEFAULT_SOUND_RECORDING_TYPE = 'MusicalWorkSoundRecording' DEFAULT_TERRITORY_CODE = 'Worldwide' DEFAULT_RIGHTS_CONTROLLER_ROLE = 'RightsController' DEFAULT_RIGHTS_SHARE_PERCENTAGE = '100.00' TAKEDOWN_RIGHTS_SHARE_PERCENTAGE = '0.00' EXPLICIT_STATUS_LOOKUP_TABLE = { ExplicitStatus.Y: 'Explicit', ExplicitStatus.N: 'NotExplicit', ExplicitStatus.C: 'ExplicitContentEdited', ExplicitStatus.U: 'Unknown', } # This mapping is deliberately incomplete. Only roles included in the keys # will be added in to the resulting DDEX as DisplayArtist nodes. DISPLAY_ARTIST_LOOKUP_TABLE = { 'performer': 'MainArtist', 'featuring': 'FeaturedArtist', } CONTRIBUTOR_ARTIST_ROLES = { 'track_writer': 'Composer', } USER_DEFINED_ARTIST_ROLES = { 'producer': 'Producer', 'remixer': 'Remixer', } ALL_PARTY_ROLES = { **DISPLAY_ARTIST_LOOKUP_TABLE, **CONTRIBUTOR_ARTIST_ROLES, **USER_DEFINED_ARTIST_ROLES, } class DealType(Enum): """Deal types for SoundRecordingDeal elements.""" MONETIZE = 'Monetize' BLOCK_ACCESS = 'BlockAccess' class RuleService(Enum): """Services for rules.""" META = 'meta' YOUTUBE = 'youtube' TIKTOK = 'tiktok'