import 'package:collection/collection.dart'; import 'package:trans_lark/entity/history_model.dart'; import 'package:trans_lark/storage/hive_storage.dart'; import 'package:trans_lark/util/date_util.dart'; class HistoryData { /// 私有构造函数 HistoryData._(); /// 静态常量用于保存类的唯一实例 static final HistoryData _instance = HistoryData._(); /// 工厂构造函数返回类的唯一实例 factory HistoryData() { return _instance; } /// 声明盒子 /// 注意, main函数中这个盒子已经打开, 可以进行存储操作 final _box = getHistoryBox(); /// 返回所有数据 List getList() { return _box.values.toList(); } /// 返回分组后的所有数据 Map> getGroupByList() { // 使用 groupBy 函数进行分组 var groupedEvents = groupBy( getList().reversed.toList(), (HistoryEntity event) => DateUtil.formatDateMs( event.translationTime ?? DateUtil.getNowTimestamp(), format: DateFormats.yMoD)); return groupedEvents; } /// 添加数据 Future addData(HistoryEntity entity) async { entity.translationTime = DateUtil.getNowTimestamp(); return await _box.add(entity); } /// 删除 Future delete(int index) async { await _box.deleteAt(index); await _box.flush(); } /// 清空所有数据 Future clear() async { await _box.clear(); await _box.flush(); } }