import 'dart:async'; import 'package:flutter/material.dart'; import '../../viewmodels/viewmodels.dart'; class PedidoSync { static final PedidoSync _instance = PedidoSync._internal(); Timer? _syncTimer; factory PedidoSync() { return _instance; } PedidoSync._internal(); void startSync( PedidoViewModel pedidoViewModel, CorteCajaViewModel corteCajaViewModel) { if (_syncTimer != null && _syncTimer!.isActive) return; _syncTimer = Timer.periodic(Duration(seconds: 5), (timer) async { // Primero sincronizamos pedidos bool hasMorePedidosToSync = await pedidoViewModel.sincronizarPedidos(); // // Luego sincronizamos corte de caja // bool hasMoreCortesToSync = // await corteCajaViewModel.sincronizarCorteCajas(); // Opcionalmente, podrías detener el timer si ya no hay nada más que sincronizar. // if (!hasMorePedidosToSync && !hasMoreCortesToSync) { // timer.cancel(); // _syncTimer = null; // print('Sincronización completa, no hay más datos por sincronizar.'); // } }); } void stopSync() { _syncTimer?.cancel(); _syncTimer = null; } bool isSyncing() { return _syncTimer != null && _syncTimer!.isActive; } }