84 lines
5.2 KiB
Python
84 lines
5.2 KiB
Python
"""规则配置页聚合 VO。"""
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class RuleConfigPackVO(BaseModel):
|
|
"""规则配置页的单个 pack。"""
|
|
|
|
packId: int = Field(..., description="pack 标识,当前等于二级分组ID")
|
|
groupId: int = Field(..., description="二级分组ID")
|
|
rootGroupId: int | None = Field(None, description="一级分组ID")
|
|
bindingId: int | None = Field(None, description="当前命中的规则集绑定ID")
|
|
ruleSetId: int | None = Field(None, description="命中的规则集ID")
|
|
effectiveTenantCode: str | None = Field(None, description="当前命中的生效租户编码")
|
|
effectiveScopeType: str | None = Field(None, description="当前命中的生效作用域类型")
|
|
isInherited: bool = Field(False, description="当前规则是否来自继承作用域")
|
|
sourceRuleSetId: int | None = Field(None, description="来源规则集ID")
|
|
ruleType: str | None = Field(None, description="规则类型编码")
|
|
ruleName: str | None = Field(None, description="规则集名称")
|
|
currentVersionId: int | None = Field(None, description="规则集当前版本ID")
|
|
fallbackVersionId: int | None = Field(None, description="规则集回退版本ID")
|
|
resolvedVersionId: int | None = Field(None, description="当前实际使用的版本ID")
|
|
hasUsableVersion: bool = Field(False, description="是否存在可用规则版本")
|
|
usableRuleCount: int = Field(0, description="可用规则数")
|
|
documentTypeId: int | None = Field(None, description="文档类型ID")
|
|
documentType: str = Field("", description="文档类型名称")
|
|
moduleType: str = Field("", description="模块名称")
|
|
mainType: str = Field("", description="一级业务类型名称")
|
|
subtype: str = Field("", description="二级业务子类型名称")
|
|
yamlText: str = Field("", description="当前规则 YAML 正文")
|
|
sourceStatus: str = Field(..., description="ready/empty/missing")
|
|
rules: list["RuleConfigPackRuleSummaryVO"] = Field(default_factory=list, description="规则摘要列表")
|
|
|
|
|
|
class RuleConfigPackRuleSummaryVO(BaseModel):
|
|
"""规则列表页使用的轻量规则摘要。"""
|
|
|
|
id: str = Field(..., description="规则内部ID")
|
|
ruleId: str = Field(..., description="规则编码")
|
|
name: str = Field(..., description="规则名称")
|
|
group: str = Field("", description="规则分组")
|
|
risk: str = Field("medium", description="风险等级")
|
|
score: str = Field("0", description="分值")
|
|
type: str = Field("deterministic", description="规则类型")
|
|
checkTypes: list[str] = Field(default_factory=list, description="阶段检查类型")
|
|
logic: str = Field("", description="组合逻辑")
|
|
subRules: list[dict] = Field(default_factory=list, description="阶段摘要")
|
|
subRuleIds: list[str] = Field(default_factory=list, description="子规则编码")
|
|
scope: list[str] = Field(default_factory=list, description="规则作用域")
|
|
dependencies: list[str] = Field(default_factory=list, description="依赖字段")
|
|
stageCount: int = Field(0, description="阶段数量")
|
|
appliesIn: list[str] = Field(default_factory=list, description="适用阶段")
|
|
prompt: str = Field("", description="AI 提示词")
|
|
description: str = Field("", description="规则说明")
|
|
|
|
|
|
class RuleConfigPackListVO(BaseModel):
|
|
"""规则列表页使用的轻量 pack。"""
|
|
|
|
packId: int = Field(..., description="pack 标识,当前等于二级分组ID")
|
|
groupId: int = Field(..., description="二级分组ID")
|
|
rootGroupId: int | None = Field(None, description="一级分组ID")
|
|
bindingId: int | None = Field(None, description="当前命中的规则集绑定ID")
|
|
ruleSetId: int | None = Field(None, description="命中的规则集ID")
|
|
effectiveTenantCode: str | None = Field(None, description="当前命中的生效租户编码")
|
|
effectiveScopeType: str | None = Field(None, description="当前命中的生效作用域类型")
|
|
isInherited: bool = Field(False, description="当前规则是否来自继承作用域")
|
|
sourceRuleSetId: int | None = Field(None, description="来源规则集ID")
|
|
ruleType: str | None = Field(None, description="规则类型编码")
|
|
ruleName: str | None = Field(None, description="规则集名称")
|
|
currentVersionId: int | None = Field(None, description="规则集当前版本ID")
|
|
fallbackVersionId: int | None = Field(None, description="规则集回退版本ID")
|
|
resolvedVersionId: int | None = Field(None, description="当前实际使用的版本ID")
|
|
hasUsableVersion: bool = Field(False, description="是否存在可用规则版本")
|
|
usableRuleCount: int = Field(0, description="可用规则数")
|
|
documentTypeId: int | None = Field(None, description="文档类型ID")
|
|
documentType: str = Field("", description="文档类型名称")
|
|
moduleType: str = Field("", description="模块名称")
|
|
mainType: str = Field("", description="一级业务类型名称")
|
|
subtype: str = Field("", description="二级业务子类型名称")
|
|
yamlName: str = Field("", description="YAML metadata.name")
|
|
sourceStatus: str = Field(..., description="ready/empty/missing")
|
|
rules: list[RuleConfigPackRuleSummaryVO] = Field(default_factory=list, description="规则摘要列表")
|