"""General constants module.""" from abacus_common_logic.utils.enum import enum CONTRACT_FLOWTHROUGH_STATUSES = enum( 'ContractFlowthroughStatuses', ACTIVE='active', SHUTOFF='shutoff', PAUSED='paused' ) CONTRACT_FLOWTHROUGH_PREVIOUS_STATUSES = enum( 'ContractFlowthroughPreviousStatuses', ACTIVE='active', SHUTOFF='shutoff', PAUSED='paused' ) CONTRACT_TERM_TYPES = enum( 'TermTypes', ARTIST='artist', CATALOG='catalog', CONTRIBUTION='contribution', LABEL='label', PRODUCT='product', TRACK='track', CONTRIBUTOR_SCHEDULE='contributor_schedule', CONTRIBUTION_SCHEDULE='contribution_schedule' ) CONTRACT_TYPES = enum( 'ContractTypes', DISTRIBUTION='distribution', LEGACY_DISTRIBUTION='legacy_distribution', NEIGHBOURING_RIGHTS='neighbouring_rights' ) CONTRACT_PARTY_TARGET_TYPES = enum( 'ContractPartyTargetTypes', CONTRIBUTOR='contributor', LABEL='label' ) CONTRACT_LIFECYCLE_SCHEDULE_DETAIL_PERIOD_TYPES = enum( 'PeriodTypes', DAY='day', MONTH='month', YEAR='year' ) SCHEDULE_DETAIL_PERIOD_TYPES_MAPPING = { 'day': 'days', 'month': 'months', 'year': 'years' } CONTRACT_LIFECYCLE_SCHEDULE_RENEWAL_TYPES = enum( 'RenewalType', CONTINUOUSLY_ACTIVE='continuously_active', RENEW_AFTER_CERTAIN_DATE='renew_after_certain_date', RENEW_PERIODICALLY='renew_periodically' ) CONTRACT_LIFECYCLE_STATUSES = enum( 'LifecycleStatus', INIT='init', ACTIVE='active', TO_BE_TERMINATED='to_be_terminated', TERMINATED='terminated', IN_COLLECTION_PERIOD='in_collection_period', INACTIVE='inactive' ) CONTRACT_LIFECYCLE_UPDATEABLE_FIELDS = [ 'lifecycle_term_start', ] CONDITION_FIELDS = enum( 'ConditionFields', COUNTRIES='countries', STORES='stores', TRANSACTION_TYPES='transaction_types' ) OA_CONTRACT_STATUS = enum( 'OaStatus', DELETED='deleted', SIGNED='signed' ) COUNTRIES_POST_LIMIT = 100 CONTRACT_TERMS_SNAPSHOT_HEADER = ( 'contract_id', 'contract_term_id', 'term_type', 'attachments', 'attachments_relations', 'is_base_term', 'contract_term_condition_id', 'conditions', 'term_rate', 'priority' ) DEFAULT_CONTRACT_EXCLUSIONS = {'stores': [], 'countries': ['RUS']} MILESTONES = enum( 'Milestones', CONTRACT_EXECUTION='contract_execution', DELIVERY='delivery', RECOUPMENT='recoupment', SCHEDULED_INSTALLMENT='scheduled_installment', SALES_MILESTONE='sales_milestone', OTHER='other' ) ADVANCE_STATUSES = enum( 'AdvanceStatuses', NOT_QUALIFIED='not_qualified', QUALIFIED='qualified', IN_REVIEW='in_review', PENDING_PAYMENT='pending_payment', APPROVED='approved', PAID='paid', DELETED='deleted' ) ADVANCE_STATUSES_EXTRA_VALIDATION_REQUIRED = ( ADVANCE_STATUSES.QUALIFIED, ADVANCE_STATUSES.IN_REVIEW, ADVANCE_STATUSES.APPROVED, ADVANCE_STATUSES.PAID, ADVANCE_STATUSES.PENDING_PAYMENT ) ADVANCE_STATUSES_PENDING_MARK = 'pending' PAYMENT_TYPES = enum( 'PaymentTypes', ADVANCE='advance' ) DEFAULT_PAGE_LIMIT = 100 DEFAULT_PAGE_OFFSET = 0 CONFIRM_ADVANCE_PAYMENT_EVENT_NAME = 'confirm_advance_payment' COMMIT_TO_SUBLEDGER_EVENT_NAME = 'commit_to_subledger' CONTRACT_KAFKA_EVENT_NAMES = enum( 'ContractKafkaEventNames', CONTRACT_CREATED='CONTRACT_CREATED', CONTRACT_UPDATED='CONTRACT_UPDATED', ) CONTRACT_KAFKA_EVENT_TYPES = { 'CONTRACT_CREATED': 'CREATE', 'CONTRACT_UPDATED': 'UPDATE' } KAFKA_TOPICS = { 'CONTRACT_CREATED': 'event.abacus.contract', 'CONTRACT_UPDATED': 'event.abacus.contract', } REFERENCE_TRANSACTION_TYPE_GROUP_ADMIN = enum( 'ReferenceTransactionTypeGroupAdmin', CONTRACT_ADMIN='contract_admin', CONTRACT_MECHANICAL_ADMIN='contract_mechanical_admin', TAX_ADMIN='tax_admin', WORKSTATION='workstation', PRESENTATIONAL='presentational' ) SEND_PAYMENT_STATE_NAME = 'send_payments' ACTION_STATUSES = enum( 'ActionStatuses', INIT='init', RUNNING='running', ERROR='error', COMPLETE='complete', APPROVED='approved', REJECTED='rejected' ) MECHANICAL_DEDUCTION_TERRITORIES = enum( 'MechanicalDeductionTerritories', CAN='CAN', ROW='ROW', USA='USA' ) MECHANICAL_DEDUCTION_TYPES = enum( 'MechanicalDeductionTypes', DIGITAL='digital', PHYSICAL='physical' ) MECHANICAL_DEDUCTION_ADMIN_TYPES = enum( 'MechanicalDeductionAdminTypes', BOTH='both', BUSINESS='business', CUSTOMER='customer' )