feat: 重构主题相关逻辑,移动 ThemeResponse 到 color.py,更新相关引用,优化目录路径处理

This commit is contained in:
2025-12-19 15:35:34 +08:00
parent 20753f1725
commit e031f3cc40
6 changed files with 60 additions and 55 deletions

View File

@@ -110,7 +110,7 @@ class Object(ObjectBase, TableBase, table=True):
合并了原有的 File 和 Folder 模型,通过 type 字段区分文件和目录。
根目录规则:
- 每个用户有一个显式根目录对象name="~", parent_id=NULL
- 每个用户有一个显式根目录对象name="my", parent_id=NULL
- 用户创建的文件/文件夹的 parent_id 指向根目录或其他文件夹的 id
- 根目录的 policy_id 指定用户默认存储策略
"""
@@ -138,6 +138,9 @@ class Object(ObjectBase, TableBase, table=True):
type: ObjectType
"""对象类型file 或 folder"""
password: str | None = Field(default=None, max_length=255)
"""对象独立密码(仅当用户为对象单独设置密码时有效)"""
# ==================== 文件专属字段 ====================
source_name: str | None = None
@@ -149,6 +152,7 @@ class Object(ObjectBase, TableBase, table=True):
upload_session_id: str | None = Field(default=None, max_length=255, unique=True, index=True)
"""分块上传会话ID仅文件有效"""
# [TODO] 拆分
file_metadata: str | None = None
"""文件元数据 (JSON格式),仅文件有效"""
@@ -227,7 +231,10 @@ class Object(ObjectBase, TableBase, table=True):
:return: Object 或 None
"""
path = path.strip()
if not path or path == "/" or path == "~":
if not path:
raise ValueError("路径不能为空")
if path in ["/my"]:
return await cls.get_root(session, user_id)
# 移除开头的斜杠并分割路径