"""Track Table Field Constants.""" # Primary Key TUID = 'tuid' # Foreign Keys PRODUCT_ID = 'product_id' # Basic Metadata TRACK_NAME = 'track_name' VERSION = 'version' META_LANGUAGE_CODE = 'meta_language_code' ISRC = 'isrc' P_INFO = 'p_info' EXPLICIT = 'explicit' UPC = 'upc' THIRD_PARTY_PUBLISHER = 'third_party_publisher' US_PUBLISHING_OBLIGATION = 'us_publishing_obligation' PREVIEW_START_TIME = 'preview_start_time' TRACK = 'track' KEY_ID = 'key_id' # Duration (Legacy fields needed for Orchard Workstation and releasing) DURATION_MINUTES = 'duration_minutes' DURATION_SECONDS = 'duration_seconds' # Ordering VOLUME_NUMBER = 'volume_number' TRACK_NUMBER = 'track_number' # Master Rights OWNERSHIP_RIGHTS = 'ownership_rights' RECORDING_COUNTRY_ID = 'recording_country_id' ORIGINAL_RIGHTS_HOLDER_COUNTRY_ID = 'original_rights_holder_country_id' IS_OWNER = 'is_owner' # Focus Tracks FOCUS_TRACK = 'focus_track' FOCUS_TRACK_START_DATE = 'focus_track_start_date' FOCUS_TRACK_END_DATE = 'focus_track_end_date' # Classical Fields WORK = 'work' MOVEMENT = 'movement' # Relationships ARTISTS = 'artists' PUBLISHERS = 'publishers' WRITERS = 'writers' FEATURING = 'featuring' PERFORMER = 'performer' LANGUAGE = 'language' PRODUCER = 'producer' PRIMARY_ARTIST = 'primary_artist' COMPOSER = 'composer' ORCHESTRA = 'orchestra' CONDUCTOR = 'conductor' ENSEMBLE = 'ensemble' REMIXER = 'remixer' ARTIST_TYPES = [ FEATURING, PERFORMER, PRODUCER, PRIMARY_ARTIST, REMIXER, COMPOSER, ORCHESTRA, CONDUCTOR, ENSEMBLE ] TRACK_CLASSICAL_ARTISTS = [COMPOSER, ORCHESTRA, CONDUCTOR, ENSEMBLE] # Fields in related tables NAME = 'name' TYPE = 'type' TRACK_ARTIST_ID = 'track_artist_id' TRACK_WRITER_ID = 'track_writer_id' PUBLISHER_NAMES = 'publisher_names' WRITER_NAMES = 'writer_names' # Localizations LOCALIZATIONS = 'localizations' LANGUAGE_ID = 'language_id' LYRICS = 'lyrics' TRACK_SAMPLES = 'track_samples' TRACK_TYPE = 'track_type' TRACK_TYPE_MUSIC = 'music' TRACK_TYPE_VIDEO = 'video' OFFER_TYPE = 'offer_type' OFFER_TYPE_ALL = 'all' OFFER_TYPE_ALBUM_DOWNLOAD_ONLY = 'album_download_only' OFFER_TYPE_TRACK_DOWNLOAD_ONLY = 'track_download_only' OFFER_TYPE_TRACK_DOWNLOAD_STREAM = 'track_download_stream' OFFER_TYPE_ALBUM_TRACK_DOWNLOAD = 'album_track_download' OFFER_TYPE_ALBUM_DOWNLOAD_STREAM = 'album_download_stream' OFFER_TYPE_STREAM_ONLY = 'stream_only' OFFER_TYPE_NONE = 'none' # fields for Language model LANGUAGE_CODE = 'language_code' LANGUAGE_ISO_639_1_CODE = 'iso_639_1_code' LANGUAGE_ISO_CODE_639_3_CODE = 'iso_code_639_3_code' LANGUAGE_NAME = 'language' LANGUAGE_APPLE_COMPATIBLE = 'apple_compatible' LANGUAGE_MODEL_FIELDS = ( LANGUAGE_CODE, LANGUAGE_ISO_639_1_CODE, LANGUAGE_ISO_CODE_639_3_CODE, LANGUAGE_NAME, LANGUAGE_APPLE_COMPATIBLE,) # Helpful for iterating through model fields BASIC_MODEL_FIELDS = ( TUID, PRODUCT_ID, OWNERSHIP_RIGHTS, TRACK_NAME, VERSION, META_LANGUAGE_CODE, ISRC, P_INFO, EXPLICIT, VOLUME_NUMBER, TRACK_NUMBER, UPC, RECORDING_COUNTRY_ID, ORIGINAL_RIGHTS_HOLDER_COUNTRY_ID, THIRD_PARTY_PUBLISHER, US_PUBLISHING_OBLIGATION, PREVIEW_START_TIME, TRACK_TYPE, OFFER_TYPE, DURATION_MINUTES, DURATION_SECONDS, FOCUS_TRACK, FOCUS_TRACK_START_DATE, FOCUS_TRACK_END_DATE, IS_OWNER) LIGHT_BASIC_MODEL_FIELDS = (TUID, PRODUCT_ID, UPC, VOLUME_NUMBER, TRACK_NAME, TRACK_NUMBER,) MEDIUM_BASIC_MODEL_FIELDS = ( TUID, PRODUCT_ID, UPC, VOLUME_NUMBER, TRACK_NAME, TRACK_NUMBER, ISRC, TRACK_TYPE) OVERVIEW_MODEL_FIELDS = (TUID, TRACK_NAME, TRACK_NUMBER, ISRC,) CREATE_MODEL_FIELDS = (TRACK_NAME, VOLUME_NUMBER, UPC, PRODUCT_ID, EXPLICIT, TRACK_TYPE,) APPLY_TO_ALL_FIELDS = ( VERSION, META_LANGUAGE_CODE, P_INFO, EXPLICIT, ARTISTS, PUBLISHERS, WRITERS, OWNERSHIP_RIGHTS, RECORDING_COUNTRY_ID, ORIGINAL_RIGHTS_HOLDER_COUNTRY_ID,) # This is used for optimizations on when to eager load queries RELATIONSHIP_FIELDS = ( OWNERSHIP_RIGHTS, ORIGINAL_RIGHTS_HOLDER_COUNTRY_ID, ARTISTS, PUBLISHERS, WRITERS,) PUBLISHING_OBLIGATION_FIELDS = ( US_PUBLISHING_OBLIGATION, THIRD_PARTY_PUBLISHER, PUBLISHERS, TUID, TRACK_NAME, VOLUME_NUMBER, TRACK_NUMBER, VERSION,)