# _*_ coding : UTF-8 _*_ # @Time : 2025/01/26 01:15 # @UpdateTime : 2025/01/26 01:15 # @Author : sonder # @File : file.py # @Software : PyCharm # @Comment : 本程序 from typing import Optional, List from pydantic import BaseModel, Field from schemas.common import BaseResponse, ListQueryResult class FileInfo(BaseModel): """ 文件信息 """ id: str = Field(..., title="文件id") name: str = Field(..., title="文件名") size: int = Field(..., title="文件大小") file_type: str = Field(..., title="文件类型") absolute_path: str = Field(..., title="绝对路径") relative_path: str = Field(..., title="相对路径") uploader_id: Optional[str] = Field(..., title="上传者ID") uploader_username: Optional[str] = Field(..., title="上传者用户名") uploader_nickname: Optional[str] = Field(..., title="上传者昵称") uploader_department_id: Optional[str] = Field(..., title="上传者部门ID") uploader_department_name: Optional[str] = Field(..., title="上传者部门名称") update_time: str = Field(..., title="更新时间") create_time: str = Field(..., title="创建时间") class Config: json_schema_extra = { "example": { "id": "1", "name": "test.txt", "size": 1024, "file_type": "text/plain", "absolute_path": "/home/test.txt", "relative_path": "/test.txt", "uploader_id": "1", "uploader_username": "test", "uploader_nickname": "test", "uploader_department_id": "1", "uploader_department_name": "test", "update_time": "2025-01-26 01:15:00", "create_time": "2025-01-26 01:15:00" } } class UploadFileResponse(BaseResponse): """ 上传文件响应模型 """ data: FileInfo = Field(..., title="文件信息") class GetFileInfoResponse(BaseResponse): """ 获取文件响应模型 """ data: FileInfo = Field(..., title="文件信息") class GetFileListResult(ListQueryResult): """ 获取文件列表结果模型 """ result: List[FileInfo] = Field(..., title="文件列表") class GetFileListResponse(BaseResponse): """ 获取文件列表响应模型 """ data: GetFileListResult = Field(..., title="文件列表结果")