"""Release correction constants.""" CANNOT_UPDATE_PRODUCT_IN_RC = 'Cannot update product in release correction.' CANNOT_UPDATE_PRODUCT_IN_RC_CODE = 'error_updating_product' FAILED_TO_FETCH_PRODUCT_INFORMATION = ( 'Failed to fetch product information from The Orchard.' ) FAILED_TO_UPDATE_PRODUCT_IN_RC = ( 'Failed to update product in release correction.') FAILED_TO_RESUBMIT_PRODUCT = ( ('Product {} has changed status to Error Correction.' ' Please check Orchard\'s Workstation to see which fields need to' ' be updated in GRPS.') ) # These constants represents a Product JSON field mapped to # the appropriate database table and field in The Orchard. # These are required to create a release correction item. RELEASE_CORRECTION_PRODUCT_SIMPLE_FIELDS = { 'cLine': ('releases', 'c_line'), 'productName': ('releases', 'release_name'), 'imprint': ('releases', 'label'), 'metaLanguage': ('releases', 'meta_language'), 'genreId': ('releases', 'genre_id'), 'subgenreId': ('releases', 'release_subgenre'), 'deliveredVersion': ('releases', 'delivered_version') } RELEASE_CORRECTION_PRODUCT_ARTIST_FIELDS = { 'performer': ('releases', 'performer'), 'featuring': ('releases', 'featuring'), 'remixer': ('releases', 'remixer'), 'producer': ('releases', 'producer'), } RELEASE_CORRECTION_PRODUCT_FIELDS = { **RELEASE_CORRECTION_PRODUCT_SIMPLE_FIELDS, **RELEASE_CORRECTION_PRODUCT_ARTIST_FIELDS } # These constants represents a Track JSON field mapped to # the appropriate database table and field in The Orchard. # These are required to create a release correction item. RELEASE_CORRECTION_TRACK_SIMPLE_FIELDS = { 'trackName': ('track', 'track_name'), 'explicit': ('track', 'explicit_lyrics'), 'pInfo': ('track', 'p_line'), 'metaLanguageCode': ('track', 'meta_language'), 'lyrics': ('track', 'lyrics') } RELEASE_CORRECTION_TRACK_FIELDS_IGNORE_NULL = [ 'lyrics' ] RELEASE_CORRECTION_TRACK_ARTIST_FIELDS = { 'track_artist': ('track', 'track_artist'), 'featuring': ('track', 'featuring'), 'remixer': ('track', 'remixer'), 'producer': ('track', 'producer'), } PRODUCT_ARTIST_ROLE_KEYS = [ 'performer', 'featuring', 'remixer', 'producer' ] TRACK_ARTIST_ROLE_KEY_MAPPING = { 'performer': 'track_artist', 'primary_artist': 'track_artist', } RELEASE_CORRECTION_TRACK_WRITER_FIELDS = { 'track_writer': ('track', 'track_writer') } RELEASE_CORRECTION_TRACK_FIELDS = { **RELEASE_CORRECTION_TRACK_SIMPLE_FIELDS, **RELEASE_CORRECTION_TRACK_ARTIST_FIELDS, **RELEASE_CORRECTION_TRACK_WRITER_FIELDS } # Fields from an artist graphql entity that are required to create # a release correction. REQUIRED_ARTIST_ENTITY_FIELDS = ['artistName', 'artistType'] REQUIRED_WRITER_ENTITY_FIELDS = ['writerName', 'writerType'] SUPPORTED_PRODUCT_LEVEL_ARTIST_ROLES = [ 'primary_artist', 'performer', 'featuring', 'remixer', 'producer' ]