# 更新日志
人话:私密保险箱使用数据库存储资源元数据,支持创建分类(存本更方便👍🏻😋)
#### 数据库层
- 新增 VaultDatabaseHelper 类,实现原生 SQLite 数据库管理
- 数据库版本升级至 v2,支持逻辑文件名与物理文件名分离
- 资源表新增 originalName 和 extension 字段,替代原有 fileName 字段
- 新增分类表 VaultCategories,支持自定义分类管理
- 新增关联表 VaultResourceCategoryMap,实现资源与分类的多对多关系
#### 中间件层
- 新增 VaultDatabaseMiddleware 类,封装所有数据库业务逻辑
- 实现 UID 生成策略:图片使用 picture{timestamp}{counter},视频使用 video{timestamp}{counter}
- 提供资源管理 API:addResource、deleteResource、renameResource、getAllResources
- 提供分类管理 API:createCategory、deleteCategory、updateCategorySortOrder、renameCategory
- 提供关联管理 API:addResourceToCategory、removeResourceFromCategory、getResourceUidsByCategory、getCategoryUidsByResource
- 新增 getResourceByPath 方法,通过文件路径查找资源 UID
- 新增 getCategoryNamesByResource 方法,获取资源所属的分类名称列表
#### 分类管理
- 新增 CategoryManager ViewModel,管理分类状态并持久化到数据库
- 替换原有的 SharedPreferences 存储方式为 SQLite 数据库存储
- 支持分类的增删改查操作
- 支持分类排序功能
- 区分系统分类(全部、照片、视频)和自定义分类
### 功能优化
#### 文件导入
- 分离逻辑文件名和扩展名存储到数据库
- 物理文件不再随重命名操作而改变路径
- 导入时自动保存资源元数据到数据库
### UI 改进
#### 分类管理页面
- 新增分类管理弹窗,支持拖拽排序
- 显示每个分类下的文件数量
- 支持删除自定义分类
- 系统分类不可删除,仅显示灰色提示
### 代码质量
#### 依赖更新
- 更新 build.gradle.kts 配置
- MainActivity 优化导航逻辑