from enum import Enum, unique @unique class EnvironmentEnum(str, Enum): """应用运行环境(开发 / 生产)。""" DEV = "dev" PROD = "prod" @unique class BusinessType(Enum): """ 业务操作类型 OTHER: 其它 INSERT: 新增 UPDATE: 修改 DELETE: 删除 GRANT: 授权 EXPORT: 导出 IMPORT: 导入 FORCE: 强退 GENCODE: 生成代码 CLEAN: 清空数据 """ OTHER = 0 INSERT = 1 UPDATE = 2 DELETE = 3 GRANT = 4 EXPORT = 5 IMPORT = 6 FORCE = 7 GENCODE = 8 CLEAN = 9 @unique class RedisInitKeyConfig(Enum): """系统内置Redis键名枚举""" ACCESS_TOKEN = {"key": "access_token", "remark": "登录令牌信息"} REFRESH_TOKEN = {"key": "refresh_token", "remark": "刷新令牌信息"} USER_SESSION = {"key": "user_session", "remark": "用户会话信息"} CAPTCHA_CODES = {"key": "captcha_codes", "remark": "图片验证码"} SYSTEM_CONFIG = {"key": "system_config", "remark": "系统配置"} TENANT_CONFIG = {"key": "tenant_config", "remark": "租户配置"} SYSTEM_DICT = {"key": "system_dict", "remark": "数据字典"} APSCHEDULER_LOCK_KEY = { "key": "scheduler_job_lock", "remark": "定时任务初始化锁", } AI_MODEL_CONFIG = {"key": "ai_model_config", "remark": "用户AI模型配置"} @property def key(self) -> str: """ 获取 Redis 键名。 返回: - str: 键名字符串。 """ return self.value.get("key", "") @property def remark(self) -> str: """ 获取 Redis 键说明。 返回: - str: 说明文案。 """ return self.value.get("remark", "") class McpType(Enum): """Mcp 服务器类型""" stdio = 0 sse = 1 class McpLLMProvider(Enum): """MCP 大语言模型供应商""" openai = "openai" deepseek = "deepseek" anthropic = "anthropic" gemini = "gemini" qwen = "qwen" @unique class QueueEnum(str, Enum): """队列枚举""" none = "None" not_none = "not None" date = "date" month = "month" like = "like" eq = "eq" or "==" in_ = "in" between = "between" ne = "!=" or "ne" gt = ">" or "gt" ge = ">=" or "ge" lt = "<" or "lt" le = "<=" or "le" class PermissionFilterStrategy(str, Enum): """ 权限过滤策略枚举 每个策略对应一种过滤实现,模型通过 ``__permission_strategy__`` 选择。 注意:``DATA_SCOPE`` 是 dispatcher(基于 ``data_scope`` 字段再分发到 5 个具体的 data_scope 子策略),其余是具体策略。 """ DATA_SCOPE = "data_scope" # 数据范围权限分发器(默认) MENU_AUTH = "menu_auth" # 菜单授权(用于 MenuModel,按角色-菜单绑定过滤) DEPT_RELATION = "dept_relation" # 部门关联(用于 DeptModel、RoleModel,按所属部门过滤) OWN = "own" # 仅本人数据 USER_BINDING = "user_binding" # 用户绑定角色(用于 RoleModel,仅显示当前用户绑定的角色) @unique class OrderTypeEnum(str, Enum): """订单类型""" NEW = "new" BUY = "buy" RENEW = "renew" UPGRADE = "upgrade" DOWNGRADE = "downgrade" PLUGIN = "plugin" @unique class InvoiceTypeEnum(str, Enum): """发票类型""" VAT_NORMAL = "vat_normal" VAT_SPECIAL = "vat_special" @unique class TicketTypeEnum(str, Enum): """工单类型""" SUGGESTION = "suggestion" BUG = "bug" OPTIMIZE = "optimize" OTHER = "other"