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;
  }
}
