// Author: fengshengxiong
// Date: 2024/5/8
// Description: 收藏数据

import 'package:hello_wallpaper/common/storage/hive_storage.dart';
import 'package:hello_wallpaper/models/wallpaper_model.dart';

class FavoriteData {
  /// 私有构造函数
  FavoriteData._();

  /// 静态常量用于保存类的唯一实例
  static final FavoriteData _instance = FavoriteData._();

  /// 工厂构造函数返回类的唯一实例
  factory FavoriteData() {
    return _instance;
  }

  /// 声明盒子
  /// 注意, main函数中这个盒子已经打开, 可以进行存储操作
  final _box = getFavoriteBox();

  /// 获取壁纸
  List<WallpaperData> getWallpaperData() {
    return _box.values.toList();
  }

  /// 存储壁纸
  Future<int> setWallpaperData(WallpaperData wallpaperData) async {
    return await _box.add(wallpaperData);
  }

  /// 删除壁纸
  Future<void> delete(index) async {
    await _box.deleteAt(index);
    await _box.flush();
  }

  /// 删除所有壁纸
  Future<void> clear() async {
    await _box.clear();
    await _box.flush();
  }
}
