添加Github登录,优化数据库模型

This commit is contained in:
2025-09-01 00:21:06 +08:00
parent f3a5ae9c40
commit 2a173c0566
23 changed files with 321 additions and 264 deletions

View File

@@ -1,3 +1,7 @@
"""
响应模型定义
"""
from pydantic import BaseModel, Field
from typing import Literal, Union, Optional
from datetime import datetime, timezone
@@ -101,4 +105,33 @@ class UserSettingModel(BaseModel):
qq: str | bool = Field(default=False, description="QQ号")
themes: dict = Field(default_factory=dict, description="用户主题配置")
two_factor: bool = Field(default=False, description="是否启用两步验证")
uid: int = Field(default=0, description="用户UID")
uid: int = Field(default=0, description="用户UID")
class FoldObjectModel(BaseModel):
id: str = Field(default=..., description="对象ID")
name: str = Field(default=..., description="对象名称")
path: str = Field(default=..., description="对象路径")
thumb: bool = Field(default=False, description="是否有缩略图")
size: int = Field(default=None, description="对象大小,单位字节")
type: Literal['file', 'folder'] = Field(default=..., description="对象类型file表示文件folder表示文件夹")
date: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), description="对象创建或修改时间")
create_date: datetime = Field(default_factory=lambda: datetime.now(timezone.utc), description="对象创建时间")
source_enabled: bool = Field(default=False, description="是否启用离线下载源")
class PolicyModel(BaseModel):
'''
存储策略模型
'''
id: str = Field(default=..., description="策略ID")
name: str = Field(default=..., description="策略名称")
type: Literal['local', 'qiniu', 'tencent', 'aliyun', 'onedrive', 'google_drive', 'dropbox', 'webdav', 'remote'] = Field(default=..., description="存储类型")
max_size: int = Field(default=0, description="单文件最大限制单位字节0表示不限制")
file_type: list = Field(default_factory=list, description="允许的文件类型列表,空列表表示不限制")
class DirectoryModel(BaseModel):
'''
目录模型
'''
parent: str = Field(default=..., description="父目录ID")
objects: list[FoldObjectModel] = Field(default_factory=list, description="目录下的对象列表")
policy: PolicyModel = Field(default_factory=PolicyModel, description="存储策略")