checkAndSyncPendingMonitoreos method

Future<void> checkAndSyncPendingMonitoreos()

Implementation

Future<void> checkAndSyncPendingMonitoreos() async {
  var connectivityResult = await Connectivity().checkConnectivity();
  if (connectivityResult == ConnectivityResult.mobile ||
      connectivityResult == ConnectivityResult.wifi) {
    final pendingUpdates = await _dbHelper.getPendingUpdatesMonitoreo();
    for (var update in pendingUpdates) {
      final monitoreo = jsonDecode(update['data']);
      bool apiSuccess = await _saveMonitoreoToApi(monitoreo);
      if (apiSuccess) {
        await _dbHelper.deletePendingUpdateMonitoreo(update['id']);
        await _sendNotification(
          'Sincronización Exitosa',
          'Los monitoreos pendientes se han sincronizado exitosamente.',
        );
      } else {
        await _sendNotification(
          'Sincronización Fallida',
          'No se pudo sincronizar los monitoreos pendientes.',
        );
        break;
      }
    }
  } else {
    await _sendNotification(
      'Sin Conexión',
      'No hay conexión a internet. No se pudieron sincronizar los monitoreos pendientes.',
    );
  }
}