mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
62 lines
2.0 KiB
Dart
62 lines
2.0 KiB
Dart
import 'package:fl_lib/fl_lib.dart';
|
|
import 'package:get_it/get_it.dart';
|
|
import 'package:server_box/data/store/container.dart';
|
|
import 'package:server_box/data/store/history.dart';
|
|
import 'package:server_box/data/store/private_key.dart';
|
|
import 'package:server_box/data/store/server.dart';
|
|
import 'package:server_box/data/store/setting.dart';
|
|
import 'package:server_box/data/store/snippet.dart';
|
|
|
|
final GetIt getIt = GetIt.instance;
|
|
|
|
abstract final class Stores {
|
|
static SettingStore get setting => getIt<SettingStore>();
|
|
static ServerStore get server => getIt<ServerStore>();
|
|
static ContainerStore get container => getIt<ContainerStore>();
|
|
static PrivateKeyStore get key => getIt<PrivateKeyStore>();
|
|
static SnippetStore get snippet => getIt<SnippetStore>();
|
|
static HistoryStore get history => getIt<HistoryStore>();
|
|
|
|
/// All stores that need backup
|
|
static List<HiveStore> get _allBackup => [
|
|
setting,
|
|
server,
|
|
container,
|
|
key,
|
|
snippet,
|
|
history,
|
|
];
|
|
|
|
static Future<void> init() async {
|
|
getIt.registerLazySingleton<SettingStore>(() => SettingStore.instance);
|
|
getIt.registerLazySingleton<ServerStore>(() => ServerStore.instance);
|
|
getIt.registerLazySingleton<ContainerStore>(() => ContainerStore.instance);
|
|
getIt.registerLazySingleton<PrivateKeyStore>(() => PrivateKeyStore.instance);
|
|
getIt.registerLazySingleton<SnippetStore>(() => SnippetStore.instance);
|
|
getIt.registerLazySingleton<HistoryStore>(() => HistoryStore.instance);
|
|
|
|
await Future.wait(_allBackup.map((store) => store.init()));
|
|
}
|
|
|
|
static int get lastModTime {
|
|
var lastModTime = 0;
|
|
for (final store in _allBackup) {
|
|
final last = store.lastUpdateTs;
|
|
if (last == null) {
|
|
continue;
|
|
}
|
|
var lastModTimeTs = 0;
|
|
for (final item in last.entries) {
|
|
final ts = item.value;
|
|
if (ts > lastModTimeTs) {
|
|
lastModTimeTs = ts;
|
|
}
|
|
}
|
|
if (lastModTimeTs > lastModTime) {
|
|
lastModTime = lastModTimeTs;
|
|
}
|
|
}
|
|
return lastModTime;
|
|
}
|
|
}
|