mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
在全局类型定义、模型、CRUD操作中添加软删除支持 - 在BaseModel中添加is_deleted和deleted_time字段 - 在UserMixin中添加deleted_id和deleted_by关联 - 修改CRUDBase的delete和clear方法实现软删除逻辑 - 更新所有相关模型添加deleted_by字段 - 修改前端接口定义添加deleted_by字段 - 移除冗余的成功提示消息
75 lines
2.8 KiB
Python
75 lines
2.8 KiB
Python
from pydantic import BaseModel, ConfigDict, Field
|
||
|
||
from app.core.validator import DateTimeStr
|
||
|
||
|
||
class CommonSchema(BaseModel):
|
||
"""通用信息模型"""
|
||
|
||
model_config = ConfigDict(from_attributes=True)
|
||
|
||
id: int = Field(description="编号ID")
|
||
name: str = Field(description="名称")
|
||
|
||
|
||
class BaseSchema(BaseModel):
|
||
"""通用输出模型,包含基础字段和审计字段"""
|
||
|
||
model_config = ConfigDict(from_attributes=True)
|
||
|
||
id: int | None = Field(default=None, description="主键ID")
|
||
uuid: str | None = Field(default=None, description="UUID")
|
||
status: str = Field(default="0", description="状态")
|
||
description: str | None = Field(default=None, description="描述")
|
||
created_time: DateTimeStr | None = Field(default=None, description="创建时间")
|
||
updated_time: DateTimeStr | None = Field(default=None, description="更新时间")
|
||
is_deleted: bool = Field(default=False, description="是否已删除")
|
||
deleted_time: DateTimeStr | None = Field(default=None, description="删除时间")
|
||
|
||
|
||
class UserBySchema(BaseModel):
|
||
"""通用创建模型,包含基础字段和审计字段"""
|
||
|
||
model_config = ConfigDict(from_attributes=True)
|
||
|
||
created_id: int | None = Field(default=None, description="创建人ID")
|
||
created_by: CommonSchema | None = Field(default=None, description="创建人信息")
|
||
updated_id: int | None = Field(default=None, description="更新人ID")
|
||
updated_by: CommonSchema | None = Field(default=None, description="更新人信息")
|
||
deleted_id: int | None = Field(default=None, description="删除人ID")
|
||
deleted_by: CommonSchema | None = Field(default=None, description="删除人信息")
|
||
|
||
|
||
class TenantBySchema(BaseModel):
|
||
"""租户嵌套出参(不再使用扁平 tenant_id / tenant_name / tenant_code)"""
|
||
|
||
model_config = ConfigDict(from_attributes=True)
|
||
|
||
tenant_id: int | None = Field(default=None, description="租户ID")
|
||
tenant: CommonSchema | None = Field(default=None, description="租户信息")
|
||
|
||
|
||
class BatchSetAvailable(BaseModel):
|
||
"""批量设置可用状态的请求模型"""
|
||
|
||
ids: list[int] = Field(default_factory=list, description="ID列表")
|
||
status: str = Field(default="0", description="是否可用")
|
||
|
||
|
||
class UploadResponseSchema(BaseModel):
|
||
"""上传响应模型"""
|
||
|
||
model_config = ConfigDict(from_attributes=True)
|
||
|
||
file_path: str | None = Field(default=None, description="新文件映射路径")
|
||
file_name: str | None = Field(default=None, description="新文件名称")
|
||
origin_name: str | None = Field(default=None, description="原文件名称")
|
||
file_url: str | None = Field(default=None, description="新文件访问地址")
|
||
|
||
|
||
class DownloadFileSchema(BaseModel):
|
||
"""下载文件模型"""
|
||
|
||
file_path: str = Field(..., description="新文件映射路径")
|
||
file_name: str = Field(..., description="新文件名称")
|