Modificaciones en DTOReserva, Reserva, ServicioCarPooling y Viaje realizado con Álvaro Herrera

parent 2e093206
......@@ -152,4 +152,5 @@ public class Reserva {
public void setReservaConcluida(boolean reservaConcluida) { this.reservaConcluida = reservaConcluida; }
}
......@@ -20,10 +20,9 @@ public class Viaje {
private int nAsientos;
@NotNull
private int precioAsiento;
@Id
private int idViaje;
public Viaje(){}
public Viaje(String origen, String destino, Date fechaSalida, int nAsientos, int precioAsiento, int idViaje) {
this.origen = origen;
......
package com.carpooling.carpoolingaoraha.rest.dto;
import com.carpooling.carpoolingaoraha.entidades.Reserva;
import com.carpooling.carpoolingaoraha.entidades.Usuario;
import com.carpooling.carpoolingaoraha.entidades.Viaje;
import java.util.ArrayList;
import java.util.Objects;
public record DTOReserva (
int idReserva,
Usuario conductor,
ArrayList<String> pasajeros,
int puntuacion,
int numPasajeros,
boolean reservaConcluida,
Viaje viaje)
{
public DTOReserva(Reserva res){
this(res.getIdReserva(), res.getConductor(), res.getPasajeros(), res.getPuntuacion(), res.getNumPasajeros(), res.getReservaConcluida(), res.getViaje());
}
public Reserva altaReserva(){
return new Reserva(conductor, viaje().getOrigen(), viaje.getDestino(), viaje.getFechaSalida(), numPasajeros, viaje.getPrecioAsiento());
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
DTOReserva that = (DTOReserva) o;
return idReserva == that.idReserva && puntuacion == that.puntuacion && numPasajeros == that.numPasajeros && reservaConcluida == that.reservaConcluida && Objects.equals(conductor, that.conductor) && Objects.equals(pasajeros, that.pasajeros) && Objects.equals(viaje, that.viaje);
}
@Override
public int hashCode() {
return Objects.hash(idReserva, conductor, pasajeros, puntuacion, numPasajeros, reservaConcluida, viaje);
}
@Override
public String toString() {
return "DTOReserva{" +
"idReserva=" + idReserva +
", conductor=" + conductor +
", pasajeros=" + pasajeros +
", puntuacion=" + puntuacion +
", numPasajeros=" + numPasajeros +
", reservaConcluida=" + reservaConcluida +
", viaje=" + viaje +
'}';
}
}
......@@ -200,4 +200,52 @@ public class ServicioCarPooling {
return viajes;
}
@Transactional
public Optional<Reserva> verReserva(@NotBlank int id) {
Optional<Reserva> reserva = repositorioReservas.buscar(id);
return reserva;
}
@Transactional
public Reserva modificarDatosReserva(@NotNull @Valid Reserva reservaModificado) {
// Buscar el viaje existente por su ID
Optional<Reserva> reservaExistente = repositorioReservas.buscar(reservaModificado.getIdReserva());
if (reservaExistente.isPresent()) {
Reserva reservaActual = reservaExistente.get();
reservaActual.setPuntuacion(reservaModificado.getPuntuacion());
reservaActual.setNumPasajeros(reservaModificado.getNumPasajeros());
reservaActual.setReservaConcluida(reservaModificado.getReservaConcluida());
reservaActual.setPasajeros(reservaModificado.getPasajeros());
repositorioReservas.actualizar(reservaActual);
return reservaActual;
} else {
throw new ReservaNoRegistrada();
}
}
@Transactional
public Solicitud modificarDatosSolicitud(@NotNull @Valid Solicitud solModificada) {
Optional<Solicitud> solExistente = repositorioSolicitud.buscar(solModificada.getId());
if (solExistente.isPresent()) {
Solicitud solActual = solExistente.get();
solActual.setReserva(solModificada.getReserva());
solActual.setPasajero(solModificada.getPasajero());
repositorioSolicitud.actualizar(solActual);
return solActual;
} else {
throw new ReservaNoRegistrada();
}
}
@Transactional
public Optional<Solicitud> verSolicitud(@NotBlank long id) {
Optional<Solicitud> solicitud = repositorioSolicitud.buscar(id);
return solicitud;
}
}
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