Files
leaudit-platform-backend/fastapi_modules/fastapi_leaudit/domian/vo/entryModuleAdminVo.py
T
2026-05-25 09:50:01 +08:00

57 lines
2.4 KiB
Python

"""入口模块管理 VO。"""
from pydantic import BaseModel, Field
class EntryModuleTenantVO(BaseModel):
"""入口模块租户配置。"""
tenant_code: str = Field(..., description="租户编码")
tenant_name: str | None = Field(None, description="租户名称")
enabled: bool = Field(True, description="是否启用")
sort_order: int = Field(0, description="排序号")
class EntryModuleBusinessScopeVO(BaseModel):
"""入口模块业务范围摘要。"""
category_count: int = Field(0, description="业务大类数量")
business_type_count: int = Field(0, description="业务类型数量")
categories: list[str] = Field(default_factory=list, description="业务大类名称列表")
class EntryModuleVO(BaseModel):
"""入口模块详情。"""
id: int = Field(..., description="入口模块ID")
name: str = Field(..., description="模块名称")
description: str | None = Field(None, description="模块描述")
path: str | None = Field(None, description="图标路径")
route_path: str | None = Field(None, description="前端跳转路径")
menu_profile: str = Field("document_review", description="菜单模板")
features: list[str] = Field(default_factory=list, description="启用功能编码列表")
sort_order: int = Field(0, description="排序")
is_enabled: bool = Field(True, description="是否启用")
tenants: list[EntryModuleTenantVO] = Field(default_factory=list, description="租户配置")
business_scope: EntryModuleBusinessScopeVO = Field(default_factory=EntryModuleBusinessScopeVO, description="业务范围摘要")
created_at: str | None = Field(None, description="创建时间")
updated_at: str | None = Field(None, description="更新时间")
class EntryModuleListVO(BaseModel):
"""入口模块列表分页。"""
total: int = Field(0, description="总数")
page: int = Field(1, description="页码")
page_size: int = Field(10, description="分页大小")
items: list[EntryModuleVO] = Field(default_factory=list, description="入口模块列表")
class EntryModuleImageUploadVO(BaseModel):
"""入口模块图片上传结果。"""
module_id: int = Field(..., description="模块ID")
path: str = Field(..., description="对象路径")
url: str = Field(..., description="访问地址")
message: str = Field(..., description="结果消息")