tool_workflow.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # coding=utf-8
  2. """
  3. @project: MaxKB
  4. @Author:虎虎
  5. @file: tool_workflow.py
  6. @date:2026/3/3 13:59
  7. @desc:
  8. """
  9. from django.db import models
  10. from common.mixins.app_model_mixin import AppModelMixin
  11. import uuid_utils.compat as uuid
  12. from tools.models import Tool
  13. class ToolWorkflow(AppModelMixin):
  14. """
  15. 知识库工作流表
  16. """
  17. id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
  18. tool = models.OneToOneField(Tool, on_delete=models.CASCADE, verbose_name="工具",
  19. db_constraint=False, related_name='workflow')
  20. workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True)
  21. work_flow = models.JSONField(verbose_name="工作流数据", default=dict)
  22. is_publish = models.BooleanField(verbose_name="是否发布", default=False, db_index=True)
  23. publish_time = models.DateTimeField(verbose_name="发布时间", null=True, blank=True)
  24. class Meta:
  25. db_table = "tool_workflow"
  26. class ToolWorkflowVersion(AppModelMixin):
  27. """
  28. 知识库工作流版本表 - 记录工作流历史版本
  29. """
  30. id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
  31. tool = models.ForeignKey(Tool, on_delete=models.CASCADE, verbose_name="工具", db_constraint=False)
  32. workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True)
  33. name = models.CharField(verbose_name="版本名称", max_length=128, default="")
  34. work_flow = models.JSONField(verbose_name="工作流数据", default=dict)
  35. publish_user_id = models.UUIDField(verbose_name="发布者id", max_length=128, default=None, null=True)
  36. publish_user_name = models.CharField(verbose_name="发布者名称", max_length=128, default="")
  37. class Meta:
  38. db_table = "tool_workflow_version"