from __future__ import annotations from enum import StrEnum class HomeMaterialConfigKeyEnum(StrEnum): """首页素材装修配置 key。""" SHOWCASE_CONFIG = "home_material_showcase_config" class HomeMaterialMediaType(StrEnum): """首页素材媒体类型。""" IMAGE = "image" VIDEO = "video" class HomeMaterialAssetStatus(StrEnum): """首页素材水印处理状态。""" DRAFT = "draft" PROCESSING = "processing" SUCCESS = "success" FAILED = "failed" class HomeMaterialWatermarkType(StrEnum): """首页素材水印类型。""" IMAGE = "image" REPEATED_TEXT = "repeated_text" class HomeMaterialWatermarkPosition(StrEnum): """水印位置枚举。""" TOP_LEFT = "top_left" TOP_CENTER = "top_center" TOP_RIGHT = "top_right" MIDDLE_LEFT = "middle_left" CENTER = "center" MIDDLE_RIGHT = "middle_right" BOTTOM_LEFT = "bottom_left" BOTTOM_CENTER = "bottom_center" BOTTOM_RIGHT = "bottom_right" CUSTOM = "custom" class HomeMaterialWatermarkSizeMode(StrEnum): """水印尺寸模式。""" RATIO = "ratio" PX = "px" class HomeMaterialPublicResponseMode(StrEnum): """前台素材返回模式。""" GROUPED = "grouped" FLAT = "flat" class HomeMaterialLogEventEnum(StrEnum): """首页素材步骤日志事件。""" GENERATION_CONFIG_VALIDATE_STARTED = "HOME_MATERIAL_GENERATION_CONFIG_VALIDATE_STARTED" GENERATION_CONFIG_VALIDATE_SUCCESS = "HOME_MATERIAL_GENERATION_CONFIG_VALIDATE_SUCCESS" GENERATION_CONFIG_UPDATE_STARTED = "HOME_MATERIAL_GENERATION_CONFIG_UPDATE_STARTED" GENERATION_CONFIG_UPDATE_SUCCESS = "HOME_MATERIAL_GENERATION_CONFIG_UPDATE_SUCCESS" GENERATION_CONFIG_UPDATE_FAILED = "HOME_MATERIAL_GENERATION_CONFIG_UPDATE_FAILED" MEDIA_REFERENCES_PARSE_FAILED = "HOME_MATERIAL_MEDIA_REFERENCES_PARSE_FAILED" class HomeMaterialOperationEnum(StrEnum): """后台操作日志 action 枚举。""" CONFIG_UPDATE = "更新首页素材展示配置" CATEGORY_CREATE = "新增首页素材行业" CATEGORY_UPDATE = "修改首页素材行业" CATEGORY_DELETE = "删除首页素材行业" WATERMARK_UPLOAD = "上传首页素材水印" WATERMARK_UPDATE = "修改首页素材水印" WATERMARK_DELETE = "删除首页素材水印" ASSET_UPLOAD = "上传首页素材" ASSET_UPDATE = "修改首页素材" ASSET_GENERATION_CONFIG_UPDATE = "修改首页素材生成配置" ASSET_DELETE = "删除首页素材" ASSET_REGENERATE_WATERMARK = "重新生成首页素材水印" HOME_MATERIAL_IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".webp"} HOME_MATERIAL_VIDEO_EXTENSIONS = {".mp4", ".mov", ".m4v", ".webm"} HOME_MATERIAL_WATERMARK_EXTENSIONS = {".png", ".webp", ".jpg", ".jpeg"} HOME_MATERIAL_GENERATION_PROMPT_MAX_LEN = 8000 HOME_MATERIAL_MEDIA_REFERENCES_MAX_COUNT = 20 HOME_MATERIAL_MEDIA_REFERENCES_JSON_MAX_LEN = 20000 HOME_MATERIAL_DEFAULT_CONFIG = { "enabled": False, "title": "行业素材案例", "subtitle": "精选图片与视频素材展示", "show_original_in_admin": True, }