saveArbol method
- Map<
String, dynamic> arbolData, - BuildContext context
Guarda árbol en local y trata de enviarlo a la API.
Si falla, queda en pending_arboles.
Implementation
Future<void> saveArbol(
Map<String, dynamic> arbolData, BuildContext context) async {
try {
// Insertar localmente en 'arboles' (tabla principal si existe)
// await _dbHelper.insertArbol(arbolData);
bool success = await _sendToApi(arbolData);
if (!success) {
await _dbHelper.insertPendingArbol(jsonEncode(arbolData));
await _sendNotification(
'Sincronización Fallida', 'Guardado local, se sincronizará luego');
_showMessage(context,
'Guardado localmente. Se sincronizará cuando haya internet.');
} else {
await _sendNotification(
'Guardado Exitoso', 'Árbol sincronizado con la API');
_showMessage(context, 'Árbol guardado exitosamente en la API');
}
} catch (e) {
await _dbHelper.insertPendingArbol(jsonEncode(arbolData));
await _sendNotification('Error', 'Ocurrió un error: $e');
_showMessage(context,
'Error al guardar árbol. Guardado localmente para reintentar.');
}
}