// Author: fengshengxiong
// Date: 2024/5/8
// Description: 持久化储存

import 'package:hive_flutter/hive_flutter.dart';
import 'package:tone_snap/data/enum/play_mode.dart';
import 'package:tone_snap/data/models/music_model.dart';
import 'package:tone_snap/data/models/playlist_model.dart';
import 'package:tone_snap/data/models/voice_model.dart';

const myVoiceBox = 'myVoiceBox';
const favoriteBox = 'favoriteBox';
const musicBox = 'musicBox';
const loveSongsBox = 'loveSongsBox';
const offlineBox = 'offlineBox';
const playlistsBox = 'playlistsBox';
const collectPlaylistsBox = 'collectPlaylistsBox';

Future initHive() async {
  // 初始化
  await Hive.initFlutter();
  // 注册类型适配器
  Hive.registerAdapter(VoiceModelAdapter());
  Hive.registerAdapter(PlayModeAdapter());
  Hive.registerAdapter(MusicModelAdapter());
  Hive.registerAdapter(PlaylistModelAdapter());

  // 打开盒子
  await Hive.openBox<VoiceModel>(myVoiceBox);
  await Hive.openBox<VoiceModel>(favoriteBox);
  await Hive.openBox(musicBox);
  await Hive.openBox<MusicModel>(loveSongsBox);
  await Hive.openBox<MusicModel>(offlineBox);
  await Hive.openBox<PlaylistModel>(playlistsBox);
  await Hive.openBox<PlaylistModel>(collectPlaylistsBox);
}