feat: add remote pull and push

This commit is contained in:
2026-09-23 00:19:58 +02:00
parent 9aaba69e3c
commit ccf5165417
29 changed files with 3042 additions and 24 deletions
+31
View File
@@ -4,11 +4,13 @@ import 'package:flutter/services.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';
import 'package:kooltab2/services/pin_lock_service.dart';
import 'package:kooltab2/services/remote_sync_service.dart';
import 'package:kooltab2/services/settings_service.dart';
import 'package:kooltab2/viewmodels/dev_menu_view_model.dart';
import 'package:kooltab2/viewmodels/history_view_model.dart';
import 'package:kooltab2/viewmodels/inventory_view_model.dart';
import 'package:kooltab2/viewmodels/pin_lock_view_model.dart';
import 'package:kooltab2/viewmodels/registration_view_model.dart';
import 'package:kooltab2/viewmodels/settings_view_model.dart';
import 'package:provider/provider.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
@@ -23,6 +25,7 @@ import 'services/product_service.dart';
import 'viewmodels/bar_screen_view_model.dart';
import 'viewmodels/admin_pin_view_model.dart';
import 'viewmodels/product_list_view_model.dart';
import 'viewmodels/remote_sync_view_model.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
@@ -48,9 +51,29 @@ Future<void> main() async {
);
await adminPinViewModel.ensureLoaded();
final remoteSyncService = RemoteSyncService(
database: database,
barTabService: DriftBarTabService(database: database),
);
final remoteSyncViewModel = RemoteSyncViewModel(
syncService: remoteSyncService,
);
final isConfiguredNotifier = ValueNotifier<bool>(await remoteSyncService.isConfigured);
remoteSyncViewModel.addListener(() {
isConfiguredNotifier.value = remoteSyncViewModel.isConfigured;
});
final registrationViewModel = RegistrationViewModel(
syncService: remoteSyncService,
);
final appRouter = createAppRouter(
pinLockViewModel,
adminPinViewModel: adminPinViewModel,
isConfiguredNotifier: isConfiguredNotifier,
);
await SentryFlutter.init(
@@ -83,6 +106,13 @@ Future<void> main() async {
create: (context) =>
DriftSettingsService(database: context.read<AppDatabase>()),
),
Provider<RemoteSyncService>.value(value: remoteSyncService),
ChangeNotifierProvider<RemoteSyncViewModel>.value(
value: remoteSyncViewModel,
),
ChangeNotifierProvider<RegistrationViewModel>.value(
value: registrationViewModel,
),
ChangeNotifierProvider<InventoryViewModel>(
create: (context) => InventoryViewModel(
productService: context.read<ProductService>(),
@@ -98,6 +128,7 @@ Future<void> main() async {
create: (context) => BarScreenViewModel(
barTabService: context.read<BarTabService>(),
inventory: context.read<InventoryViewModel>(),
remoteSyncViewModel: context.read<RemoteSyncViewModel>(),
),
),
ChangeNotifierProvider<HistoryViewModel>(