简化数据库模型
This commit is contained in:
@@ -22,7 +22,7 @@ class GroupBase(SQLModelBase):
|
||||
|
||||
|
||||
class GroupOptionsBase(SQLModelBase):
|
||||
"""用户组选项基础字段,供数据库模型和 DTO 共享"""
|
||||
"""用户组基础选项字段"""
|
||||
|
||||
share_download: bool = False
|
||||
"""是否允许分享下载"""
|
||||
@@ -43,9 +43,28 @@ class GroupOptionsBase(SQLModelBase):
|
||||
"""是否允许高级删除"""
|
||||
|
||||
|
||||
class GroupAllOptionsBase(GroupOptionsBase):
|
||||
"""用户组完整选项字段,供 DTO 和数据库模型共享"""
|
||||
|
||||
archive_download: bool = False
|
||||
"""是否允许打包下载"""
|
||||
|
||||
archive_task: bool = False
|
||||
"""是否允许创建打包任务"""
|
||||
|
||||
webdav_proxy: bool = False
|
||||
"""是否允许WebDAV代理"""
|
||||
|
||||
aria2: bool = False
|
||||
"""是否允许使用aria2"""
|
||||
|
||||
redirected_source: bool = False
|
||||
"""是否使用重定向源"""
|
||||
|
||||
|
||||
# ==================== DTO 模型 ====================
|
||||
|
||||
class GroupCreateRequest(SQLModelBase):
|
||||
class GroupCreateRequest(GroupAllOptionsBase):
|
||||
"""创建用户组请求 DTO"""
|
||||
|
||||
name: str = Field(max_length=255)
|
||||
@@ -63,39 +82,8 @@ class GroupCreateRequest(SQLModelBase):
|
||||
speed_limit: int = Field(default=0, ge=0)
|
||||
"""速度限制 (KB/s), 0为不限制"""
|
||||
|
||||
# 用户组选项
|
||||
share_download: bool = False
|
||||
"""是否允许分享下载"""
|
||||
|
||||
share_free: bool = False
|
||||
"""是否免积分获取需要积分的内容"""
|
||||
|
||||
relocate: bool = False
|
||||
"""是否允许文件重定位"""
|
||||
|
||||
source_batch: int = Field(default=0, ge=0)
|
||||
"""批量获取源地址数量"""
|
||||
|
||||
select_node: bool = False
|
||||
"""是否允许选择节点"""
|
||||
|
||||
advance_delete: bool = False
|
||||
"""是否允许高级删除"""
|
||||
|
||||
archive_download: bool = False
|
||||
"""是否允许打包下载"""
|
||||
|
||||
archive_task: bool = False
|
||||
"""是否允许创建打包任务"""
|
||||
|
||||
webdav_proxy: bool = False
|
||||
"""是否允许WebDAV代理"""
|
||||
|
||||
aria2: bool = False
|
||||
"""是否允许使用aria2"""
|
||||
|
||||
redirected_source: bool = False
|
||||
"""是否使用重定向源"""
|
||||
"""批量获取源地址数量(覆盖基类以添加 ge 约束)"""
|
||||
|
||||
policy_ids: list[UUID] = []
|
||||
"""关联的存储策略UUID列表"""
|
||||
@@ -136,7 +124,7 @@ class GroupUpdateRequest(SQLModelBase):
|
||||
"""关联的存储策略UUID列表"""
|
||||
|
||||
|
||||
class GroupDetailResponse(SQLModelBase):
|
||||
class GroupDetailResponse(GroupAllOptionsBase):
|
||||
"""用户组详情响应 DTO"""
|
||||
|
||||
id: UUID
|
||||
@@ -166,19 +154,6 @@ class GroupDetailResponse(SQLModelBase):
|
||||
policy_ids: list[UUID] = []
|
||||
"""关联的存储策略UUID列表"""
|
||||
|
||||
# 选项
|
||||
share_download: bool = False
|
||||
share_free: bool = False
|
||||
relocate: bool = False
|
||||
source_batch: int = 0
|
||||
select_node: bool = False
|
||||
advance_delete: bool = False
|
||||
archive_download: bool = False
|
||||
archive_task: bool = False
|
||||
webdav_proxy: bool = False
|
||||
aria2: bool = False
|
||||
redirected_source: bool = False
|
||||
|
||||
|
||||
class GroupListResponse(SQLModelBase):
|
||||
"""用户组列表响应 DTO"""
|
||||
@@ -221,7 +196,7 @@ class GroupResponse(GroupBase, GroupOptionsBase):
|
||||
from .policy import GroupPolicyLink
|
||||
|
||||
|
||||
class GroupOptions(GroupOptionsBase, TableBaseMixin):
|
||||
class GroupOptions(GroupAllOptionsBase, TableBaseMixin):
|
||||
"""用户组选项模型"""
|
||||
|
||||
group_id: UUID = Field(
|
||||
@@ -231,21 +206,6 @@ class GroupOptions(GroupOptionsBase, TableBaseMixin):
|
||||
)
|
||||
"""关联的用户组UUID"""
|
||||
|
||||
archive_download: bool = False
|
||||
"""是否允许打包下载"""
|
||||
|
||||
archive_task: bool = False
|
||||
"""是否允许创建打包任务"""
|
||||
|
||||
webdav_proxy: bool = False
|
||||
"""是否允许WebDAV代理"""
|
||||
|
||||
aria2: bool = False
|
||||
"""是否允许使用aria2"""
|
||||
|
||||
redirected_source: bool = False
|
||||
"""是否使用重定向源"""
|
||||
|
||||
# 反向关系
|
||||
group: "Group" = Relationship(back_populates="options")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user