80 lines
2.4 KiB
Python

# _*_ 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="文件列表结果")