saveSpecies method

Future<void> saveSpecies(
  1. Map<String, dynamic> species,
  2. BuildContext context
)

Implementation

Future<void> saveSpecies(
    Map<String, dynamic> species, BuildContext context) async {
  try {
    await _dbHelper.insertEspeciesExpedienteBatch([species]);
    bool success = await _saveToApi(species);

    if (!success) {
      await _dbHelper.insertPendingEspecieExpediente(jsonEncode(species));
      await _sendNotification(
          'Sincronización Fallida', 'Guardado local, pero no sincronizado.');
      _showMessage(context,
          'Guardado localmente. Se sincronizará cuando haya internet.');
    } else {
      await _sendNotification(
          'Guardado Exitoso', 'Sincronización con la API completada.');
      _showMessage(context, 'Especie guardada exitosamente en la API');
    }
  } catch (e) {
    print('Error al guardar especie: $e');
    await _sendNotification('Error', 'Ocurrió un error al guardar: $e');
    _showMessage(context, 'Error al guardar especie: $e');
  }
}