"""General constants module.""" from abacus_common_logic.utils.enum import enum from abacus_file_upload.constants.units import SECS_IN_HR from core.config import Config # Presigned URL expiration (in seconds) PRESIGNED_URL_EXPIRATION_SECS = SECS_IN_HR # 1 hour # Upload expiration settings UPLOAD_EXPIRATION_SECS = SECS_IN_HR # 1 hour # All valid upload statuses UPLOAD_STATUSES = enum( 'UploadStatuses', INIT='init', SCANNING='scanning', COMPLETE='complete', ERROR='error', CANCELLED='cancelled', QUARANTINED='quarantined', ) UPLOAD_TYPES = enum( 'UploadTypes', ADJUSTMENTS='adjustments', FLOWTHROUGH='flowthrough', ) # Map upload types to S3 buckets UPLOAD_TYPE_TO_BUCKET = { 'adjustments': Config.S3_ABACUS_ADJUSTMENTS_BUCKET, } # Event Processing Status EVENT_PROCESSING_STATUSES = enum( 'EventProcessingStatuses', COMPLETED='completed', FAILED='failed', PENDING='pending' ) ABACUS_OUTBOX_TARGET_TYPES = enum( 'AbacusOutboxTargetTypes', FILE_UPLOAD='file_upload', ) ABACUS_OUTBOX_EVENT_TYPES = enum( 'AbacusOutboxEventTypes', FILE_UPLOAD_COMPLETED='file_upload.completed', ) VALID_FILE_UPLOAD_STATUSES_TRANSITIONS = { UPLOAD_STATUSES.INIT: [ UPLOAD_STATUSES.CANCELLED, UPLOAD_STATUSES.SCANNING, UPLOAD_STATUSES.ERROR, ], UPLOAD_STATUSES.SCANNING: [ UPLOAD_STATUSES.COMPLETE, UPLOAD_STATUSES.ERROR, UPLOAD_STATUSES.QUARANTINED, ], UPLOAD_STATUSES.COMPLETE: [], UPLOAD_STATUSES.ERROR: [], UPLOAD_STATUSES.CANCELLED: [], UPLOAD_STATUSES.QUARANTINED: [], }