from __future__ import annotations from enum import StrEnum class AdminUploadSceneEnum(StrEnum): """管理后台全局上传场景。""" SYSTEM_LOGO = "system_logo" SYSTEM_PDF = "system_pdf" OPEN_TYPE_THUMB = "open_type_thumb" HOME_MATERIAL_REFERENCE = "home_material_reference" ADMIN_COMMON = "admin_common" class AdminUploadResourceTypeEnum(StrEnum): """管理后台全局上传资源类型。""" IMAGE = "image" VIDEO = "video" AUDIO = "audio" PDF = "pdf" FILE = "file" class AdminUploadLogEventEnum(StrEnum): """管理后台上传步骤日志事件。""" VALIDATE_STARTED = "ADMIN_UPLOAD_VALIDATE_STARTED" VALIDATE_SUCCESS = "ADMIN_UPLOAD_VALIDATE_SUCCESS" SAVE_STARTED = "ADMIN_UPLOAD_SAVE_STARTED" SAVE_SUCCESS = "ADMIN_UPLOAD_SAVE_SUCCESS" DB_RECORD_SUCCESS = "ADMIN_UPLOAD_DB_RECORD_SUCCESS" FAILED = "ADMIN_UPLOAD_FAILED" ADMIN_UPLOAD_IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".webp", ".gif"} ADMIN_UPLOAD_VIDEO_EXTENSIONS = {".mp4", ".mov", ".m4v", ".webm"} ADMIN_UPLOAD_AUDIO_EXTENSIONS = {".mp3", ".wav", ".m4a", ".aac"} ADMIN_UPLOAD_PDF_EXTENSIONS = {".pdf"} ADMIN_UPLOAD_IMAGE_MAX_BYTES = 20 * 1024 * 1024 ADMIN_UPLOAD_VIDEO_MAX_BYTES = 300 * 1024 * 1024 ADMIN_UPLOAD_AUDIO_MAX_BYTES = 30 * 1024 * 1024 ADMIN_UPLOAD_PDF_MAX_BYTES = 20 * 1024 * 1024 ADMIN_UPLOAD_FILE_MAX_BYTES = 100 * 1024 * 1024 ADMIN_UPLOAD_FILE_NAME_MAX_LEN = 255 ADMIN_UPLOAD_SCENE_LABELS: dict[str, str] = { AdminUploadSceneEnum.SYSTEM_LOGO.value: "系统Logo", AdminUploadSceneEnum.SYSTEM_PDF.value: "系统PDF", AdminUploadSceneEnum.OPEN_TYPE_THUMB.value: "开户方式缩略图", AdminUploadSceneEnum.HOME_MATERIAL_REFERENCE.value: "首页素材附件", AdminUploadSceneEnum.ADMIN_COMMON.value: "后台公共上传", }