feat: add backend rule group and permission support

This commit is contained in:
wren
2026-05-06 09:40:37 +08:00
parent 7acbe0f1d9
commit 76ba7e65ed
45 changed files with 6175 additions and 110 deletions
@@ -0,0 +1,63 @@
from pydantic import BaseModel, Field
class EvaluationPointGroupCreateDTO(BaseModel):
"""创建评查点分组请求。"""
name: str = Field(..., description="分组名称")
code: str = Field(..., description="分组编码")
pid: int | None = Field(None, description="父分组ID,空或 0 表示一级业务分组")
description: str | None = Field(None, description="分组描述")
document_type_id: int | None = Field(None, description="关联文档类型ID;一级通常留空仅用于兼容旧数据,二级需绑定具体文档类型")
entry_module_id: int | None = Field(None, description="关联入口模块ID;一级业务分组可绑定,允许后补")
sort_order: int = Field(0, description="排序")
is_enabled: bool = Field(True, description="是否启用")
class EvaluationPointGroupUpdateDTO(BaseModel):
"""更新评查点分组请求。"""
name: str | None = Field(None, description="分组名称")
code: str | None = Field(None, description="分组编码")
pid: int | None = Field(None, description="父分组ID,空或 0 表示一级业务分组")
description: str | None = Field(None, description="分组描述")
document_type_id: int | None = Field(None, description="关联文档类型ID;一级通常留空仅用于兼容旧数据,二级需绑定具体文档类型")
entry_module_id: int | None = Field(None, description="关联入口模块ID;一级业务分组可绑定,允许后补")
sort_order: int | None = Field(None, description="排序")
is_enabled: bool | None = Field(None, description="是否启用")
class EvaluationPointGroupRebindDTO(BaseModel):
"""文档类型分组换绑请求。"""
new_parent_id: int = Field(..., ge=1, description="新的文档类型分组ID")
class EvaluationPointGroupBatchStatusDTO(BaseModel):
"""批量更新状态请求。"""
ids: list[int] = Field(default_factory=list, description="分组ID列表")
is_enabled: bool = Field(..., description="目标启用状态")
class EvaluationPointGroupBatchDeleteDTO(BaseModel):
"""批量删除分组请求。"""
ids: list[int] = Field(default_factory=list, description="分组ID列表")
class EvaluationPointGroupBindingCreateDTO(BaseModel):
"""规则组绑定创建请求。"""
rule_set_id: int = Field(..., ge=1, description="规则集ID")
priority: int = Field(0, description="优先级")
is_active: bool = Field(True, description="是否启用")
note: str | None = Field(None, description="备注")
class EvaluationPointGroupBindingUpdateDTO(BaseModel):
"""规则组绑定更新请求。"""
priority: int | None = Field(None, description="优先级")
is_active: bool | None = Field(None, description="是否启用")
note: str | None = Field(None, description="备注")