mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-22 13:05:18 +00:00
feat: 为模型添加租户配额字段和字典表关联关系 fix: 修复部门树查询未应用租户隔离的问题 perf: 优化操作日志中间件的拦截逻辑和日志记录 style: 清理无用导入和重复代码 test: 添加基础测试文件 docs: 更新模型注释和字段说明
82 lines
3.1 KiB
Python
82 lines
3.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from typing import List, Optional
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
from app.core.validator import DateTimeStr
|
|
|
|
|
|
class UserInfoSchema(BaseModel):
|
|
"""用户信息模型"""
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int = Field(description="用户ID")
|
|
name: str = Field(description="用户姓名")
|
|
username: str = Field(description="用户名")
|
|
|
|
|
|
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: Optional[int] = Field(default=None, description="主键ID")
|
|
uuid: Optional[str] = Field(default=None, description="UUID")
|
|
status: Optional[bool] = Field(default=None, description="状态")
|
|
description: Optional[str] = Field(default=None, description="描述")
|
|
created_time: Optional[DateTimeStr] = Field(default=None, description="创建时间")
|
|
updated_time: Optional[DateTimeStr] = Field(default=None, description="更新时间")
|
|
|
|
class UserBySchema(BaseModel):
|
|
"""通用创建模型,包含基础字段和审计字段"""
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
created_id: Optional[int] = Field(default=None, description="创建人ID")
|
|
created_by: Optional[UserInfoSchema] = Field(default=None, description="创建人信息")
|
|
updated_id: Optional[int] = Field(default=None, description="更新人ID")
|
|
updated_by: Optional[UserInfoSchema] = Field(default=None, description="更新人信息")
|
|
|
|
class TenantSchema(BaseModel):
|
|
"""租户模型"""
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
tenant_id: Optional[int] = Field(default=None, description="所属租户ID")
|
|
tenant: Optional[CommonSchema] = Field(default=None, description="租户信息")
|
|
|
|
|
|
class CustomerSchema(BaseModel):
|
|
"""客户模型"""
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
customer_id: Optional[int] = Field(default=None, description="所属客户ID")
|
|
customer: Optional[CommonSchema] = Field(default=None, description="客户信息")
|
|
|
|
|
|
class BatchSetAvailable(BaseModel):
|
|
"""批量设置可用状态的请求模型"""
|
|
ids: List[int] = Field(default_factory=list, description="ID列表")
|
|
status: bool = Field(default=True, description="是否可用")
|
|
|
|
|
|
class UploadResponseSchema(BaseModel):
|
|
"""上传响应模型"""
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
file_path: Optional[str] = Field(default=None, description='新文件映射路径')
|
|
file_name: Optional[str] = Field(default=None, description='新文件名称')
|
|
origin_name: Optional[str] = Field(default=None, description='原文件名称')
|
|
file_url: Optional[str] = Field(default=None, description='新文件访问地址')
|
|
|
|
|
|
class DownloadFileSchema(BaseModel):
|
|
"""下载文件模型"""
|
|
file_path: str = Field(..., description='新文件映射路径')
|
|
file_name: str = Field(..., description='新文件名称')
|