80 lines
2.4 KiB
Python
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="文件列表结果")
|