You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
3.5 KiB
Python

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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"