Files
2026-05-06 20:06:41 +08:00

74 lines
3.3 KiB
Python

from pydantic import BaseModel, ConfigDict, 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="备注")
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")