"""General constants module.""" from abacus_common_logic.utils.enum import enum ACCOUNT_PAYEE_ACTION_NAMES = enum( 'AccountPayeeActionNames', PAYMENT_ELIGIBILITY='payment_eligibility', TAX_ELIGIBILITY='tax_eligibility', ) ACCOUNTING_PERIOD_ACTION_NAMES = enum( 'AccountingPeriodActionNames', DELIVER_SALES_FILES='deliver_sales_files', APPROVE_SALES_FILES='approve_sales_files', PREP_MECHANICAL_DEDUCTIONS='prep_mechanical_deductions', MARK_RUNS_AS_COMPLETE='mark_runs_as_complete', CLOSE_PERIOD='close_period', ) ACCOUNTING_RUN_ACTION_NAMES = enum( 'AccountingRunActionNames', COMMIT_ROYALTIES='commit_royalties' ) ACCOUNTING_RUN_STATUSES = enum( 'AccountingRunStatus', INVALID='Invalid', COMMITTED='Committed', SKIPPED='Skipped' ) ACTION_STATUSES = enum( 'ActionStatuses', INIT='init', RUNNING='running', ERROR='error', COMPLETE='complete', APPROVED='approved', REJECTED='rejected', ) CONTRACT_ACTION_NAMES = enum( 'ContractActionNames', LEGACY_SYNC='legacy_sync', SAP_SYNC='sap_sync' ) CONTRACT_TYPES = enum( 'ContractTypes', DISTRIBUTION='distribution', NEIGHBOURING_RIGHTS='neighbouring_rights', ) PARENT_TABLE_NAMES = enum( 'ParentTableNames', ACCOUNT_PAYEE='account_payee', ACCOUNTING_PERIOD='accounting_period', ACCOUNTING_RUN='accounting_run', CONTRACT='contract', PAYEE='payee', PAYMENT_GROUP_PAYMENT='payment_group_payment', PAYMENT_GROUP_PAYMENT_ACCOUNT='payment_group_payment_account', PAYMENT_GROUP_PAYMENT_BATCH='payment_group_payment_batch', SALES_FILE='sales_file', STATEMENT_PERIOD='statement_period', STATEMENT_PERIOD_ADJUSTMENT_FILE='statement_period_adjustment_file', STATEMENT_PERIOD_PAYMENT_ENTITY='statement_period_payment_entity', WORKSHEET_PAYMENT_CONTRACT_ADVANCE='worksheet_payment_contract_advance', WORKSHEET_PAYMENT_CUSTOM='worksheet_payment_custom', ) PAYEE_ACTION_NAMES = enum( 'PayeeActionNames', BANKING_ELIGIBILITY='banking_eligibility', ) PAYMENT_GROUP_PAYMENT_ACTION_NAMES = enum( 'PaymentGroupPaymentActionNames', CALCULATE_PAYMENTS='calculate_payments', GENERATE_PAYMENTS='generate_payments', GENERATE_EXPORT='generate_export', UPLOAD_APPROVAL='upload_approval', SEND_PAYMENTS='send_payments', ) PAYMENT_GROUP_PAYMENT_ACCOUNT_ACTION_NAMES = enum( 'PaymentGroupPaymentAccountActionNames', SEND_PAYMENTS='send_payments' ) PAYMENT_GROUP_PAYMENT_BATCH_ACTION_NAMES = enum( 'PaymentGroupPaymentBatchActionNames', SEND_PAYMENT='send_payment' ) SALES_FILES_ACTION_NAMES = enum( 'SalesFilesActionNames', GET_ELIGIBLE_SALES='get_eligible_sales', APPROVE_SALES='approve_sales', ) STATEMENT_PERIOD_ACTION_NAMES = enum( 'StatementPeriodActionNames', UPLOAD_EXCHANGE_RATES='upload_exchange_rates', RELEASE_RESERVES='release_reserves', STATEMENT_PERIOD_CLOSE='statement_period_close', ) STATEMENT_PERIOD_ADJUSTMENT_FILE_ACTION_NAMES = enum( 'StatementPeriodAdjustmentFileActionNames', UPLOAD_FILE='upload_file', IMPORT_FILE='import_file', APPROVE_FILE='approve_file', APPLY_FILE='apply_file', ) AUTO_GENERATED_STATEMENT_PERIOD_ADJUSTMENT_FILE_ACTION_NAMES = enum( 'AutoGeneratedStatementPeriodAdjustmentFileActionNames', UPLOAD_FILE='upload_file', VALIDATE_FILE='validate_file', IMPORT_FILE='import_file', APPROVE_FILE='approve_file', APPLY_FILE='apply_file', ) STATEMENT_PERIOD_PAYMENT_ENTITY_ACTION_NAMES = enum( 'StatementPeriodPaymentEntity', CLOSE_BALANCE='close_balance', COLLABORATORS_AUTO_REPORT_RUN='collaborators_auto_report_run', ) WORKSHEET_PAYMENT_CONTRACT_ADVANCE_ACTION_NAMES = enum( 'WorksheetPaymentContractAdvance', SALESFORCE_ID_LINKED='salesforce_id_linked', SALESFORCE_ID_CONFIRMED='salesforce_id_confirmed', FUNDS_CONFIRMED='funds_confirmed', SEND_PAYMENTS='send_payments', ) WORKSHEET_PAYMENT_CUSTOM_ACTION_NAMES = enum( 'WorksheetPaymentCustomActionNames', UPLOAD_APPROVAL='upload_approval', FUNDS_CONFIRMED='funds_confirmed', SEND_PAYMENTS='send_payments', ) ACTIONS_BY_PARENT_TABLE = { 'account_payee': ACCOUNT_PAYEE_ACTION_NAMES, 'accounting_period': ACCOUNTING_PERIOD_ACTION_NAMES, 'accounting_run': ACCOUNTING_RUN_ACTION_NAMES, 'contract': CONTRACT_ACTION_NAMES, 'payee': PAYEE_ACTION_NAMES, 'payment_group_payment': PAYMENT_GROUP_PAYMENT_ACTION_NAMES, 'payment_group_payment_account': PAYMENT_GROUP_PAYMENT_ACCOUNT_ACTION_NAMES, 'payment_group_payment_batch': PAYMENT_GROUP_PAYMENT_BATCH_ACTION_NAMES, 'sales_file': SALES_FILES_ACTION_NAMES, 'statement_period': STATEMENT_PERIOD_ACTION_NAMES, 'statement_period_adjustment_file': STATEMENT_PERIOD_ADJUSTMENT_FILE_ACTION_NAMES, 'statement_period_payment_entity': STATEMENT_PERIOD_PAYMENT_ENTITY_ACTION_NAMES, 'worksheet_payment_contract_advance': WORKSHEET_PAYMENT_CONTRACT_ADVANCE_ACTION_NAMES, 'worksheet_payment_custom': WORKSHEET_PAYMENT_CUSTOM_ACTION_NAMES, } ORCHARD_PROFILE_TYPES = enum( 'OrchardProfileTypes', ABACUS_PROFILE='AbacusProfile', DOCUMENTS_PROFILE='DocumentsProfile', ) DOCUMENTS_PROFILE_ACCOUNT_PAYEE_ACTION_NAMES = enum( 'DocumentsProfileAccountPayeeActionNames', BANKING_DETAILS_REVIEW='banking_details_review', PAYMENT_ELIGIBILITY='payment_eligibility', ) DOCUMENTS_PROFILE_PAYEE_ACTION_NAMES = enum( 'DocumentsProfilePayeeActionNames', BANKING_ELIGIBILITY='banking_eligibility', ) DOCUMENTS_PROFILE_ALLOWED_ACTIONS_BY_PARENT_TABLE = { PARENT_TABLE_NAMES.ACCOUNT_PAYEE: DOCUMENTS_PROFILE_ACCOUNT_PAYEE_ACTION_NAMES, PARENT_TABLE_NAMES.PAYEE: DOCUMENTS_PROFILE_PAYEE_ACTION_NAMES, } DOCUMENTS_PROFILE_ALLOWED_STATUSES_BY_PARENT_TABLE_BY_ACTION_NAMES = { ( PARENT_TABLE_NAMES.ACCOUNT_PAYEE, DOCUMENTS_PROFILE_ACCOUNT_PAYEE_ACTION_NAMES.BANKING_DETAILS_REVIEW, ): [ACTION_STATUSES.INIT], ( PARENT_TABLE_NAMES.ACCOUNT_PAYEE, ACCOUNT_PAYEE_ACTION_NAMES.PAYMENT_ELIGIBILITY, ): [ACTION_STATUSES.INIT, ACTION_STATUSES.RUNNING], ( PARENT_TABLE_NAMES.PAYEE, PAYEE_ACTION_NAMES.BANKING_ELIGIBILITY, ): [ACTION_STATUSES.INIT, ACTION_STATUSES.RUNNING], } OWS_PERMISSIONS_SERVICE_NAME = 'ows-permissions' OWS_PERMISSIONS_ACCOUNT_ENDPOINT_URL = ( '/admin/profile-type/{' + 'profile_type}/' + 'profile/{profile_id}/resource/' + '{resource_type}' ) VENDOR_RESOURCE_NAME = 'Vendor' COLLABORATOR_RESOURCE_NAME = 'Collaborator' LABEL_RESOURCE_NAME = 'label' PAYEE_TYPES = enum( 'PayeeTypes', COLLABORATOR='collaborator', ) MAX_BULK_QUERY_LIMIT = 300 MAX_BULK_QUERY_OFFSET = 2147483647 # MySQL signed int max value # Max ids accepted by a batch /dataloader route in one request. Callers page # larger fan-outs into several calls; the cap bounds the IN (...) clause and the # response payload. Matches the OWS_BATCH_LIMIT convention used across services. DATALOADER_BATCH_LIMIT = 200 ABACUS_OUTBOX_EVENT_TYPES = enum( 'AbacusOutboxEventTypes', CLOSE_BALANCE_COMPLETED='close_balance.completed', ) ABACUS_OUTBOX_STATUSES = enum( 'AbacusOutboxStatuses', COMPLETED='completed', FAILED='failed', PENDING='pending', )