Files
leaudit-platform-backend/fastapi_modules/fastapi_leaudit/domian/vo/ruleVo.py
T

65 lines
2.8 KiB
Python

"""规则 VO。"""
from pydantic import BaseModel, Field
class RuleSetVO(BaseModel):
"""规则集响应。"""
id: int = Field(..., description="规则集ID")
ruleType: str = Field(..., description="业务规则类型编码")
ruleName: str = Field(..., description="规则集名称")
domainType: str | None = Field(None, description="域类型")
currentVersionId: int | None = Field(None, description="当前激活版本ID")
status: str = Field(..., description="draft/active/inactive/archived")
class RuleVersionVO(BaseModel):
"""规则版本响应。"""
id: int = Field(..., description="版本ID")
ruleSetId: int = Field(..., description="所属规则集ID")
versionNo: str = Field(..., description="版本号")
status: str = Field(..., description="draft/validated/published/rolled_back")
ossUrl: str = Field(..., description="YAML 文件 OSS 地址")
changeNote: str | None = Field(None, description="变更说明")
publishedAt: str | None = Field(None, description="发布时间")
class RuleContentVO(BaseModel):
"""规则版本正文响应。"""
id: int = Field(..., description="版本ID")
ruleSetId: int = Field(..., description="所属规则集ID")
ruleType: str = Field(..., description="规则类型编码")
versionNo: str = Field(..., description="版本号")
yamlText: str = Field(..., description="YAML 正文")
ossUrl: str = Field(..., description="YAML 文件 OSS 地址")
class RuleValidationVO(BaseModel):
"""规则 YAML 校验响应。"""
valid: bool = Field(..., description="是否校验通过")
ruleType: str | None = Field(None, description="规则类型编码")
ruleName: str | None = Field(None, description="规则名称")
versionNo: str | None = Field(None, description="规则版本号")
ruleCount: int = Field(0, description="规则总数")
extractCount: int = Field(0, description="抽取字段总数")
errors: list[str] = Field(default_factory=list, description="错误信息列表")
class RuleBindingVO(BaseModel):
"""规则类型绑定响应。"""
id: int = Field(..., description="绑定ID")
docTypeId: int = Field(..., description="文档类型ID")
docTypeCode: str | None = Field(None, description="文档类型编码")
ruleSetId: int = Field(..., description="规则集ID")
ruleType: str | None = Field(None, description="规则类型编码(来自关联查询)")
ruleName: str | None = Field(None, description="规则集名称(来自关联查询)")
bindingMode: str = Field(..., description="绑定模式: explicit / wildcard / fallback")
priority: int = Field(0, description="优先级")
isActive: bool = Field(True, description="是否激活")
note: str | None = Field(None, description="备注说明")