feat: 更新数据模型和API路由,优化用户信息获取及设置管理

This commit is contained in:
2025-12-02 21:36:19 +08:00
parent 22c8f7649f
commit 8b6e18f0e2
8 changed files with 171 additions and 72 deletions

20
PLAN.md
View File

@@ -28,7 +28,7 @@
- bool[WebDAV]
- bool[WebDAV 反代]
- bool[离线下载]
- Object
- Object `计划:把 file 和 folder 合并为一个 Object 表,通过对象类型区分`
- 对象名
- 区分大小写
- 禁止名称为特殊字段 (如 `/`, `\`, `:`, `*`, `?`, `<`, `>`, `:`, `"`)
@@ -42,6 +42,10 @@
- 音频:歌名、歌手名、专辑、流派...
- 图片: 尺寸、ISO、曝光、拍摄设备、地理位置...
- 其他需要记录的元数据
- 当对象类型为 folder 时
- 当前文件夹的视图(网格/列表/画廊)
- 排序规则(按名称/大小/上传时间/修改时间)
- 排序方式(升序/降序)
- 当对象类型为 link 时
- 目标对象ID
- 外键
@@ -68,7 +72,7 @@
- 运行环境与目标
- 数据库类型:主要支持 PostgreSQL 18考虑兼容 SQLite/MySQL/早期版本PostgreSQL
- 驱动版本:做一定的向下兼容,主要支持 Python 3.14
- 驱动版本:做一定的向下兼容,主要支持 Python 3.13+
- 异步栈:全量异步 AsyncSession不接受兼容同步
- 业务语义与数据模型
- 时间与时区:统一存储 UTC再根据用户选择的时区计算本地化时间
@@ -80,4 +84,16 @@
- 关系与级联
- 删除文件夹时,同时删除该文件夹内的所有子文件夹及其所有文件
- 删除用户时同时删除该用户的所有文件文件夹分享Tag
- 文件预览与编辑
- 预览应用 Literal['嵌入网页式应用', 'WOPI协议式应用']
- 是否启用
- WOPI协议式应用 `https://{server_host}/hosting/discovery`
- 嵌入网页式应用
- 图标
- 名称
- 支持的文件类型列表
- 预览URL模板 支持魔法变量
- 最大文件大小
- 平台 支持列表 ['all', 'mobile', 'desktop']
- 是否在新窗口打开