updateTime method

Future<bool> updateTime(
  1. int idTime,
  2. TimeTraining? time
)

Método para actualizar un tiempo en la base de datos.

Este método actualiza los datos de un tiempo en la tabla timeTraining utilizando su ID y un objeto TimeTraining con los nuevos valores. Sobretodo para actualizar penalizaciones o comentarios.

Parámetros:

  • idTime: El ID del tiempo que se actualizará.
  • time: Un objeto TimeTraining que contiene los nuevos valores para actualizar.

Retorna:

  • bool: true si la actualización fue exitosa (al menos una fila afectada), false si ocurrió un error o no se actualizó ninguna fila.

Implementation

Future<bool> updateTime(int idTime, TimeTraining? time) async {
  final db = await DatabaseHelper.database;
  // MAPA CON LOS VALORES A ACTUALIZAR
  try {
    // REALIZAR EL UPDATE
    final Map<String, dynamic> timeData = {
      'idTimeTraining': idTime,
      'idSession': time?.idSession,
      'scramble': time?.scramble,
      'timeInSeconds': time?.timeInSeconds,
      'comments': time?.comments,
      'penalty': time?.penalty,
    };

    final result = await db.update('timeTraining', timeData,
        where: 'idTimeTraining = ?', whereArgs: [idTime]);

    // DEVUELVE TRUE SI SE ACTUALIZO AL MENOS UNA FILA
    return result > 0;
  } catch (e) {
    // RETORNA FALSE Y MUESTRA UN MENSAJE DE ERROR SI FALLA
    DatabaseHelper.logger.e(
        "Error al actualizar la información del time ${time.toString()}: $e");
    return false;
  }
}