proposal.md 2.1 KB

Why

用户创建的歌单数据(歌单信息、歌曲关联)仅存储在本地 RDB 数据库中,一旦卸载应用或更换设备,所有歌单数据将丢失。用户需要一种可靠的方式将歌单备份到远程存储,并在需要时恢复。同时,自动备份到服务器作为 VIP 增值功能,可以增强产品价值。

What Changes

  • 新增歌单导出功能:将歌单数据序列化为 JSON 格式文件,支持手动导出到本地存储
  • 新增歌单导入功能:从 JSON 备份文件恢复歌单数据(歌单信息 + 歌曲关联)
  • 新增 WebDAV 备份功能:将歌单备份文件上传到用户已配置的 WebDAV 账户(复用现有 RemoteDriveManager
  • 新增 WebDAV 恢复功能:从 WebDAV 账户下载备份文件并恢复歌单
  • 新增自动备份功能(VIP):歌单变更时自动备份到服务器端(通过远程 API),VIP 用户专享
  • 新增备份管理 UI:在设置页面添加备份/恢复入口,显示备份历史和状态

Capabilities

New Capabilities

  • playlist-export-import: 歌单数据的本地导出和导入,包括 JSON 序列化格式定义、文件选择器集成、数据校验与合并策略
  • playlist-remote-backup: 歌单数据的远程备份与恢复,包括 WebDAV 备份上传/下载、服务器端自动备份(VIP)、备份历史管理

Modified Capabilities

(无需修改现有规格)

Impact

  • 数据模型: PlaylistTable 需要新增导出/导入方法,将歌单及关联歌曲序列化为 JSON
  • 远程存储: 复用 RemoteDriveManager 和现有 WebDAV/远程网盘账户体系(RemoteDriveType),新增备份文件的上传下载逻辑
  • VIP 系统: 集成现有 VIP 权限检查(VipPageUserUtil),自动备份功能仅限 VIP 用户
  • 配置系统: 通过 ConfigManager 获取服务器端备份 API 地址等配置
  • UI 层: 在 SettingPage 新增备份管理入口,新建备份管理页面/对话框
  • 依赖: 无新外部依赖,使用系统 @kit.CoreFileKit 进行文件操作,使用 @kit.NetworkKit 进行网络请求