Modificación clase Usuario

parent 64600afb
......@@ -24,7 +24,7 @@ public class Usuario {
private int telefono;
private String email;
private String claveAcceso;
private int puntuacion;
private ArrayList<Integer> puntuacion;
private Rol rol;
@Transient
private ArrayList<Integer> viajesOfertados;
......@@ -41,7 +41,7 @@ public class Usuario {
this.telefono = telefono;
this.email = email;
this.claveAcceso = claveAcceso;
this.puntuacion = 0;
this.puntuacion = new ArrayList<>();
this.rol = rol;
if(rol == CONDUCTOR){
this.viajesOfertados = new ArrayList<>();
......@@ -213,4 +213,22 @@ public class Usuario {
return viajesDisponibles;
}
public void actualizarPuntuacion(Usuario usuario, int nuevaPuntuacion) {
// Carga el usuario desde la base de datos
Usuario usuarioExistente = usuarioRepository.findById(usuario.getId()).orElse(null);
if (usuarioExistente != null) {
// Agrega la nueva puntuación
usuarioExistente.getPuntuaciones().add(nuevaPuntuacion);
// Calcula la puntuación media
List<Integer> puntuaciones = usuarioExistente.getPuntuaciones();
double puntuacionMedia = puntuaciones.stream().mapToInt(Integer::intValue).average().orElse(0.0);
usuarioExistente.setPuntuacionMedia(puntuacionMedia);
// Guarda el usuario actualizado (sin duplicar)
usuarioRepository.save(usuarioExistente);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment