"""General constants module.""" from abacus_common_logic.utils.enum import enum DAG_IDS = enum( 'DagIds', ACCOUNTING_PERIOD_CLOSE='accounting_period_close', ACCOUNTING_PERIOD_MECHANICALS='accounting_period_mechanicals', ACCOUNTING_PERIOD_SALES_APPROVE='accounting_period_sales_approve', ACCOUNTING_RUN_CALCULATE='accounting_run_calculate', ACCOUNTING_RUN_CALCULATE_NR='accounting_run_calculate_nr', ACCOUNTING_RUN_COMMIT='accounting_run_commit', ADJUSTMENT_FILE_GENERATE='adjustment_file_generate', ADJUSTMENT_FILE_IMPORT='adjustment_file_import', ADJUSTMENT_FILE_UPLOAD='adjustment_file_upload', APPLY_PENDING_ADJUSTMENTS='apply_pending_adjustments', PAYMENTS_GENERATE='payments_generate', PAYMENTS_GENERATE_EXPORT='payments_generate_export', PAYMENTS_UPLOAD_APPROVAL='payments_upload_approval', PAYONEER_PAYMENTS_PAYOUT='payoneer_payments_payout', SALES_APPROVE='sales_approve', SALES_INGEST='sales_ingest', SALES_GET_ELIGIBLE='sales_get_eligible', RESERVES_RELEASE='reserves_release', ) # For now, we do not configure the number of active runs per dag # This value is the default MAX_ACTIVE_RUNS_PER_DAG = 16 # 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 # The dags in PARALLEL_DAG_RUNS have been deprecated, but let's keep # the constant in case we want to implement parallel runs in the future --dczinsky PARALLEL_DAG_RUNS = { 'legacy_sync_contract': MAX_ACTIVE_RUNS_PER_DAG, 'sap_sync_contract': MAX_ACTIVE_RUNS_PER_DAG, 'adjustment_file_upload': MAX_ACTIVE_RUNS_PER_DAG, 'adjustment_file_import': MAX_ACTIVE_RUNS_PER_DAG, 'apply_pending_adjustments': MAX_ACTIVE_RUNS_PER_DAG, 'accounting_period_close': MAX_ACTIVE_RUNS_PER_DAG, 'payments_upload_approval': MAX_ACTIVE_RUNS_PER_DAG, 'adjustment_file_generate': MAX_ACTIVE_RUNS_PER_DAG, } EVENT_NAMES = enum( 'EventNames', ACCOUNTING_PERIOD_APPROVE_SALES_FILES='approve_sales_files', ACCOUNTING_PERIOD_CLOSE='accounting_period_close', ACCOUNTING_PERIOD_MECHANICALS='accounting_period_mechanicals', ACCOUNTING_RUN_CALCULATE='accounting_run_calculate', ACCOUNTING_RUN_CALCULATE_NR='accounting_run_calculate_nr', ACCOUNTING_RUN_COMMIT='accounting_run_commit', ADJUSTMENT_FILE_UPLOAD='adjustment_file_upload', ADJUSTMENT_FILE_WORKSHEET_IMPORT='adjustment_file_worksheet_import', APPLY_PENDING_ADJUSTMENTS='apply_pending_adjustments', APPLY_ROYALTY_CORRECTION='apply_royalty_correction', APPLY_ROYALTY_REVERSAL='apply_royalty_reversal', BACKFILL='backfill', CALCULATE_PAYMENTS='calculate_payments', CLOSE_BALANCE='close_balance', COLLABORATORS_AUTO_REPORT_RUN='collaborators_auto_report_run', COMMIT_ADVANCE_PAYMENT='commit_advance_payment', COMMIT_BATCH_PAYMENT='commit_batch_payment', COMMIT_CUSTOM_PAYMENT='commit_custom_payment', COMMIT_MECHANICALS='commit_mechanicals', COMMIT_REVERSAL_TO_SUBLEDGER='commit_reversal_to_subledger', COMMIT_ROYALTIES='commit_royalties', COMMIT_TO_SUBLEDGER='commit_to_subledger', COMMIT_VAT='commit_vat', COMMIT_VAT_SUMMARY='commit_vat_summary', COMMIT_WHT='commit_withholding_tax', CONFIRM_ADVANCE_APPROVAL='confirm_advance_approval', CONFIRM_ADVANCE_PAYMENT='confirm_advance_payment', CONFIRM_APPROVAL='confirm_approval', CONFIRM_FUNDS='confirm_funds', GENERATE_EXPORT='generate_export', GENERATE_FLOWTHROUGH_ADJUSTMENTS='generate_flowthrough_adjustments', INGEST_VAT_SUMMARY='ingest_vat_summary', LEGACY_SYNC_CONTRACT='legacy_sync_contract', PAYMENT_ACCEPTED='payment_accepted', PAYMENT_APPROVAL='payment_approval', PAYMENTS_GENERATE='payments_generate', PAYMENT_RETURNED='payment_returned', SNAPSHOT_CONTRACTS='snapshot_contracts', RELEASE_RESERVES='release_reserves', RETURN_ADVANCE_PAYMENT='return_advance_payment', RETURN_BATCH_PAYMENT='return_batch_payment', RETURN_CUSTOM_PAYMENT='return_custom_payment', RETURN_VAT_SUMMARY='return_vat_summary', RETURN_WHT='return_withholding_tax', SALES_APPROVE='approve_sales', SALES_GET_ELIGIBLE='get_eligible_sales', SALES_INGEST_DISTRO='ingest_sales_distro', SALES_INGEST_NR='ingest_sales_nr', SAP_SYNC_CONTRACT='sap_sync_contract', SCHEDULE_RESERVES='schedule_reserves', SEND_PAYMENTS='send_payments', STAGE_ROYALTY_CORRECTION='stage_royalty_correction', STAGE_ROYALTY_REVERSAL='stage_royalty_reversal', STATEMENT_PERIOD_CLOSE='statement_period_close', TAKE_RESERVES='take_reserves', TAX_WITHHOLDING='tax_withholding', UPLOAD_APPROVAL='upload_approval', ) # Unfinished DAG statuses # see https://github.com/apache/airflow/blob/966ee7d99466ba841e5fd7cd29f050ae59e75c85/airflow/utils/state.py#L120 DAG_IN_PROGRESS_STATUSES = [ 'scheduled', 'queued', 'running', 'sensing', 'shutdown', 'up_for_retry', 'up_for_reschedule', ] EVENT_LAMBDA_NAMES = { EVENT_NAMES.APPLY_ROYALTY_CORRECTION: 'lambda-abacus-correction-apply', EVENT_NAMES.APPLY_ROYALTY_REVERSAL: 'lambda-abacus-correction-apply', EVENT_NAMES.CALCULATE_PAYMENTS: 'lambda-documents-calculate-payments', EVENT_NAMES.CLOSE_BALANCE: 'lambda-documents-close-balance', EVENT_NAMES.COLLABORATORS_AUTO_REPORT_RUN: 'lambda-collaborator-auto-report-run', EVENT_NAMES.COMMIT_ADVANCE_PAYMENT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.COMMIT_CUSTOM_PAYMENT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.COMMIT_TO_SUBLEDGER: 'lambda-documents-post-to-subledger', EVENT_NAMES.COMMIT_REVERSAL_TO_SUBLEDGER: 'lambda-documents-post-to-subledger', EVENT_NAMES.COMMIT_VAT_SUMMARY: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.COMMIT_WHT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.COMMIT_BATCH_PAYMENT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.LEGACY_SYNC_CONTRACT: 'lambda-abacus-sync-contract', EVENT_NAMES.RETURN_ADVANCE_PAYMENT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.RETURN_CUSTOM_PAYMENT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.RETURN_VAT_SUMMARY: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.RETURN_WHT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.RETURN_BATCH_PAYMENT: 'lambda-abacus-commit-ledger-account-contract', EVENT_NAMES.SAP_SYNC_CONTRACT: 'lambda-abacus-sync-contract-sap', EVENT_NAMES.STAGE_ROYALTY_CORRECTION: 'lambda-abacus-correction-stage', EVENT_NAMES.STAGE_ROYALTY_REVERSAL: 'lambda-abacus-correction-stage', EVENT_NAMES.SNAPSHOT_CONTRACTS: 'lambda-abacus-snapshot-contracts', } TARGET_TYPES = enum( 'TargetTypes', ACCOUNTING_PERIOD='accounting_period', STATEMENT_PERIOD_ADJUSTMENT_FILE='statement_period_adjustment_file', WORKSHEET_PAYMENT_CONTRACT_ADVANCE='worksheet_payment_contract_advance', WORKSHEET_PAYMENT_CUSTOM='worksheet_payment_custom', ) EVENT_TARGET_LAMBDA_NAMES = { ( EVENT_NAMES.SEND_PAYMENTS, TARGET_TYPES.WORKSHEET_PAYMENT_CONTRACT_ADVANCE, ): 'lambda-documents-send-payments', ( EVENT_NAMES.SEND_PAYMENTS, TARGET_TYPES.WORKSHEET_PAYMENT_CUSTOM, ): 'lambda-documents-send-payments', } ABACUS_PAYMENTS_GENERATE_LAMBDA_NAME = 'lambda-documents-generate-payments' UNPROVISIONED_LAMBDAS = ['lambda-collaborator-auto-report-run'] STATEMENT_PERIOD_STATUSES = enum( 'StatementPeriodStatuses', OPEN='open', CURRENT='current', CLOSED='closed' ) ALLOWED_EVENTS_FOR_RETRY = [ EVENT_NAMES.CALCULATE_PAYMENTS, ]