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
+11 -1
View File
@@ -1,4 +1,4 @@
from pydantic import BaseModel, Field
from pydantic import BaseModel, ConfigDict, Field
class EvaluationPointGroupCreateDTO(BaseModel):
@@ -61,3 +61,13 @@ class EvaluationPointGroupBindingUpdateDTO(BaseModel):
priority: int | None = Field(None, description="优先级")
is_active: bool | None = Field(None, description="是否启用")
note: str | None = Field(None, description="备注")
class EvaluationPointGroupRuleDraftCreateDTO(BaseModel):
"""二级分组下新建规则 YAML 草稿请求。"""
model_config = ConfigDict(populate_by_name=True)
yaml_text: str = Field(..., min_length=1, alias="yamlText", description="完整规则 YAML 正文")
change_note: str | None = Field(None, alias="changeNote", description="版本变更说明")
editor_user_id: int | None = Field(None, alias="editorUserId", description="编辑者用户ID")
+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()