Files
FastapiAdmin/backend/app/core/base_schema.py
T
zhangtao e32bc0660e refactor(字段命名): 统一将created_at和updated_at重命名为created_time和updated_time
重构字段命名以保持一致性,将时间相关字段从created_at/updated_at统一改为created_time/updated_time
同时调整相关查询参数、服务层映射和模板文件中的字段命名
优化权限过滤逻辑,提取为独立的Permission类
2025-11-24 01:53:01 +08:00

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 BaseCreateSchema(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='新文件名称')