enums.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. from enum import Enum, unique
  2. @unique
  3. class EnvironmentEnum(str, Enum):
  4. """应用运行环境(开发 / 生产)。"""
  5. DEV = "dev"
  6. PROD = "prod"
  7. @unique
  8. class BusinessType(Enum):
  9. """
  10. 业务操作类型
  11. OTHER: 其它
  12. INSERT: 新增
  13. UPDATE: 修改
  14. DELETE: 删除
  15. GRANT: 授权
  16. EXPORT: 导出
  17. IMPORT: 导入
  18. FORCE: 强退
  19. GENCODE: 生成代码
  20. CLEAN: 清空数据
  21. """
  22. OTHER = 0
  23. INSERT = 1
  24. UPDATE = 2
  25. DELETE = 3
  26. GRANT = 4
  27. EXPORT = 5
  28. IMPORT = 6
  29. FORCE = 7
  30. GENCODE = 8
  31. CLEAN = 9
  32. @unique
  33. class RedisInitKeyConfig(Enum):
  34. """系统内置Redis键名枚举"""
  35. ACCESS_TOKEN = {"key": "access_token", "remark": "登录令牌信息"}
  36. REFRESH_TOKEN = {"key": "refresh_token", "remark": "刷新令牌信息"}
  37. CAPTCHA_CODES = {"key": "captcha_codes", "remark": "图片验证码"}
  38. SYSTEM_CONFIG = {"key": "system_config", "remark": "系统配置"}
  39. SYSTEM_DICT = {"key": "system_dict", "remark": "数据字典"}
  40. APSCHEDULER_LOCK_KEY = {
  41. "key": "scheduler_job_lock",
  42. "remark": "定时任务初始化锁",
  43. }
  44. @property
  45. def key(self) -> str:
  46. """
  47. 获取 Redis 键名。
  48. 返回:
  49. - str: 键名字符串。
  50. """
  51. return self.value.get("key", "")
  52. @property
  53. def remark(self) -> str:
  54. """
  55. 获取 Redis 键说明。
  56. 返回:
  57. - str: 说明文案。
  58. """
  59. return self.value.get("remark", "")
  60. class McpType(Enum):
  61. """Mcp 服务器类型"""
  62. stdio = 0
  63. sse = 1
  64. class McpLLMProvider(Enum):
  65. """MCP 大语言模型供应商"""
  66. openai = "openai"
  67. deepseek = "deepseek"
  68. anthropic = "anthropic"
  69. gemini = "gemini"
  70. qwen = "qwen"
  71. @unique
  72. class QueueEnum(str, Enum):
  73. """队列枚举"""
  74. none = "None"
  75. not_none = "not None"
  76. date = "date"
  77. month = "month"
  78. like = "like"
  79. eq = "eq" or "=="
  80. in_ = "in"
  81. between = "between"
  82. ne = "!=" or "ne"
  83. gt = ">" or "gt"
  84. ge = ">=" or "ge"
  85. lt = "<" or "lt"
  86. le = "<=" or "le"
  87. class PermissionFilterStrategy(str, Enum):
  88. """
  89. 权限过滤策略枚举
  90. 定义不同的权限过滤策略,让模型选择合适的过滤方式
  91. """
  92. DATA_SCOPE = "data_scope" # 基于数据范围权限(默认)
  93. ROLE_BASED = "role_based" # 基于角色授权(菜单)
  94. DEPT_BASED = "dept_based" # 基于部门关联(部门、角色)
  95. SELF_ONLY = "self_only" # 仅本人数据
  96. USER_ROLE = "user_role" # 当前用户绑定的角色
  97. ENTERPRISE_BASED = "enterprise_based" # 基于企业ID的企业隔离