feat: add rule draft permission flow

This commit is contained in:
wren
2026-05-06 20:06:41 +08:00
parent 0b76dce2a5
commit f9de903acc
8 changed files with 412 additions and 14 deletions
+45
View File
@@ -1,5 +1,7 @@
from pydantic import BaseModel, Field
from fastapi_modules.fastapi_leaudit.domian.vo.ruleVo import RuleVersionVO
class RuleGroupBindingVO(BaseModel):
"""二级分组下的规则集绑定。"""
@@ -96,4 +98,47 @@ class EvaluationPointGroupBatchDeleteVO(BaseModel):
message: str = Field(..., description="结果消息")
class EvaluationPointGroupRuleTemplateContextVO(BaseModel):
"""二级分组生成规则模板所需上下文。"""
group_id: int = Field(..., description="当前二级分组ID")
group_code: str = Field(..., description="当前二级分组编码")
group_name: str = Field(..., description="当前二级分组名称")
parent_group_id: int = Field(..., description="所属一级分组ID")
parent_group_code: str = Field(..., description="所属一级分组编码")
parent_group_name: str = Field(..., description="所属一级分组名称")
document_type_id: int | None = Field(None, description="关联文档类型ID")
document_type_code: str | None = Field(None, description="关联文档类型编码")
document_type_name: str | None = Field(None, description="关联文档类型名称")
entry_module_id: int | None = Field(None, description="入口模块ID")
entry_module_name: str | None = Field(None, description="入口模块名称")
class EvaluationPointGroupRuleTemplateVO(BaseModel):
"""二级分组规则模板响应。"""
context: EvaluationPointGroupRuleTemplateContextVO = Field(..., description="二级分组上下文")
ruleType: str = Field(..., description="从分组上下文推导出的规则类型编码")
ruleName: str = Field(..., description="规则集名称")
nextVersionNo: str = Field(..., description="建议创建的下一个版本号")
ossPreviewKey: str = Field(..., description="该版本预计写入的 OSS key")
yamlTemplate: str = Field(..., description="可直接编辑的完整 YAML 模板")
existingRuleSetId: int | None = Field(None, description="已存在的规则集ID")
existingBindingId: int | None = Field(None, description="当前分组已存在的绑定ID")
class EvaluationPointGroupRuleDraftVO(BaseModel):
"""二级分组规则草稿创建响应。"""
packId: int = Field(..., description="规则配置 pack ID,当前等于二级分组ID")
groupId: int = Field(..., description="二级分组ID")
ruleName: str = Field(..., description="规则名称")
ruleType: str = Field(..., description="规则类型编码")
ruleSetId: int = Field(..., description="所属规则集ID")
ossKey: str = Field(..., description="草稿写入的 OSS key")
version: RuleVersionVO = Field(..., description="刚创建的规则版本")
binding: RuleGroupBindingVO = Field(..., description="当前二级分组与规则集的绑定信息")
autoBound: bool = Field(..., description="本次是否自动新增了绑定")
EvaluationPointGroupVO.model_rebuild()