feat: add backend rule group and permission support
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class EvaluationPointBaseDTO(BaseModel):
|
||||
name: str | None = Field(None, description="评查点名称")
|
||||
code: str | None = Field(None, description="评查点编码")
|
||||
risk: str | None = Field(None, description="风险等级")
|
||||
is_enabled: bool | None = Field(None, description="是否启用")
|
||||
description: str | None = Field(None, description="评查点描述")
|
||||
evaluation_point_groups_id: int | None = Field(None, description="二级分组ID")
|
||||
evaluation_point_groups_pid: int | None = Field(None, description="一级分组ID")
|
||||
document_attribute_type: str | None = Field(None, description="适用属性类型")
|
||||
references_laws: dict[str, Any] | None = Field(None, description="法律依据")
|
||||
extraction_config: dict[str, Any] | None = Field(None, description="抽取配置")
|
||||
evaluation_config: dict[str, Any] | None = Field(None, description="评查配置")
|
||||
pass_message: str | None = Field(None, description="通过提示")
|
||||
fail_message: str | None = Field(None, description="不通过提示")
|
||||
suggestion_message: str | None = Field(None, description="建议提示")
|
||||
suggestion_message_type: str | None = Field(None, description="建议提示类型")
|
||||
post_action: str | None = Field(None, description="后置动作")
|
||||
action_config: str | None = Field(None, description="动作配置")
|
||||
score: float | int | None = Field(None, description="分值")
|
||||
area: str | None = Field(None, description="地区")
|
||||
|
||||
|
||||
class EvaluationPointCreateDTO(EvaluationPointBaseDTO):
|
||||
name: str = Field(..., description="评查点名称")
|
||||
code: str = Field(..., description="评查点编码")
|
||||
risk: str = Field(..., description="风险等级")
|
||||
is_enabled: bool = Field(True, description="是否启用")
|
||||
evaluation_point_groups_id: int = Field(..., description="二级分组ID")
|
||||
evaluation_point_groups_pid: int = Field(..., description="一级分组ID")
|
||||
|
||||
|
||||
class EvaluationPointUpdateDTO(EvaluationPointBaseDTO):
|
||||
pass
|
||||
@@ -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="备注")
|
||||
@@ -0,0 +1,28 @@
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class PromptTemplateBaseDTO(BaseModel):
|
||||
template_name: str | None = Field(None, description='模板名称')
|
||||
template_code: str | None = Field(None, description='模板code')
|
||||
template_type: str | None = Field(None, description='模板类型')
|
||||
description: str | None = Field(None, description='模板描述')
|
||||
template_content: str | None = Field(None, description='模板内容')
|
||||
template_abbreviation: str | None = Field(None, description='模板简称')
|
||||
variables: dict[str, Any] | None = Field(None, description='变量定义')
|
||||
status: int | None = Field(None, description='状态')
|
||||
version: str | None = Field(None, description='版本')
|
||||
created_by: int | None = Field(None, description='创建人ID')
|
||||
|
||||
|
||||
class PromptTemplateCreateDTO(PromptTemplateBaseDTO):
|
||||
template_name: str = Field(..., description='模板名称')
|
||||
template_type: str = Field(..., description='模板类型')
|
||||
template_content: str = Field(..., description='模板内容')
|
||||
status: int = Field(1, description='状态')
|
||||
version: str = Field('v1.0', description='版本')
|
||||
|
||||
|
||||
class PromptTemplateUpdateDTO(PromptTemplateBaseDTO):
|
||||
pass
|
||||
@@ -44,6 +44,16 @@ class RolePermissionsBatchDTO(BaseModel):
|
||||
role_id: int = Field(..., description="角色ID")
|
||||
permissions: list[RolePermissionConfigDTO] = Field(default_factory=list, description="权限列表")
|
||||
replace: bool = Field(False, description="是否替换当前角色已有权限")
|
||||
replace_scope_permission_ids: list[int] = Field(default_factory=list, description="替换模式下仅允许清理的权限ID范围")
|
||||
|
||||
|
||||
class RoleAccessSaveDTO(BaseModel):
|
||||
"""角色菜单与接口权限联合保存请求。"""
|
||||
|
||||
route_ids: list[int] = Field(default_factory=list, description="启用路由ID列表")
|
||||
permission_ids: list[int] = Field(default_factory=list, description="启用接口权限ID列表")
|
||||
route_permission: str = Field("RW", description="路由授权类型")
|
||||
replace_scope_permission_ids: list[int] = Field(default_factory=list, description="允许本次替换清理的权限ID范围")
|
||||
|
||||
|
||||
class UserRolesAssignDTO(BaseModel):
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
"""规则分组 DTO。"""
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class RuleGroupCreateDTO(BaseModel):
|
||||
"""创建规则分组。"""
|
||||
|
||||
name: str = Field(..., description="分组名称")
|
||||
code: str = Field(..., description="分组编码")
|
||||
pid: int | None = Field(None, description="父分组ID,空或0表示一级分组")
|
||||
description: str | None = Field(None, description="分组描述")
|
||||
documentTypeId: int | None = Field(None, description="关联文档类型ID,仅二级分组使用")
|
||||
isEnabled: bool = Field(True, description="是否启用")
|
||||
sortOrder: int = Field(0, description="排序")
|
||||
|
||||
|
||||
class RuleGroupUpdateDTO(BaseModel):
|
||||
"""更新规则分组。"""
|
||||
|
||||
name: str | None = Field(None, description="分组名称")
|
||||
code: str | None = Field(None, description="分组编码")
|
||||
description: str | None = Field(None, description="分组描述")
|
||||
documentTypeId: int | None = Field(None, description="关联文档类型ID")
|
||||
isEnabled: bool | None = Field(None, description="是否启用")
|
||||
sortOrder: int | None = Field(None, description="排序")
|
||||
|
||||
|
||||
class RuleGroupBindingCreateDTO(BaseModel):
|
||||
"""创建规则组绑定。"""
|
||||
|
||||
ruleSetId: int = Field(..., description="规则集ID")
|
||||
priority: int = Field(0, description="优先级")
|
||||
isActive: bool = Field(True, description="是否启用")
|
||||
note: str | None = Field(None, description="备注")
|
||||
|
||||
|
||||
class RuleGroupBindingUpdateDTO(BaseModel):
|
||||
"""更新规则组绑定。"""
|
||||
|
||||
priority: int | None = Field(None, description="优先级")
|
||||
isActive: bool | None = Field(None, description="是否启用")
|
||||
note: str | None = Field(None, description="备注")
|
||||
Reference in New Issue
Block a user