From 9af8156dca7c63770a85d8d88e20bfb0aed32c65 Mon Sep 17 00:00:00 2001 From: Hugo <hugo.cubino@estudiantes.uva.es> Date: Sat, 16 Nov 2024 19:10:12 +0100 Subject: [PATCH] =?UTF-8?q?En=20teor=C3=ADa=20la=20parte=20funcional=20est?= =?UTF-8?q?=C3=A1=20y=20funciona=20el=20build=20y=20run?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- java/services/bookings/pom.xml | 6 +- .../Controllers/BookingController.java | 126 ++++++++++++++++++ .../Exceptions/GlobalExceptionHandler.java | 2 +- .../Exceptions/HotelNotFoundException.java | 2 +- .../Exceptions/InvalidDateRangeException.java | 2 +- .../Exceptions/InvalidRequestException.java | 2 +- .../Models/Booking.java | 22 ++- .../Repositories/BookingRepository.java | 22 ++- .../bookingServiceApplication.java} | 6 +- .../bookings/config/RestTemplateConfig.java | 14 ++ .../Controllers/BookingController.java | 80 ----------- .../Controllers/HotelController.java | 114 ---------------- .../Controllers/UserController.java | 117 ---------------- .../com/uva/roomBooking/Models/Address.java | 115 ---------------- .../com/uva/roomBooking/Models/Hotel.java | 84 ------------ .../java/com/uva/roomBooking/Models/Room.java | 105 --------------- .../java/com/uva/roomBooking/Models/Tipo.java | 7 - .../java/com/uva/roomBooking/Models/User.java | 90 ------------- .../uva/roomBooking/Models/UserStatus.java | 5 - .../Repositories/HotelRepository.java | 8 -- .../Repositories/RoomRepository.java | 35 ----- .../Repositories/UserRepository.java | 9 -- .../Controllers/BookingController.class | Bin 0 -> 6892 bytes .../Exceptions/GlobalExceptionHandler.class | Bin 3945 -> 3903 bytes .../Exceptions/HotelNotFoundException.class | Bin 1068 -> 1062 bytes .../InvalidDateRangeException.class | Bin 0 -> 460 bytes .../Exceptions/InvalidRequestException.class | Bin 628 -> 622 bytes .../com/uva/bookings/Models/Booking.class | Bin 0 -> 2162 bytes .../Repositories/BookingRepository.class | Bin 0 -> 1828 bytes .../bookingServiceApplication.class} | Bin 760 -> 763 bytes .../bookings/config/RestTemplateConfig.class | Bin 0 -> 667 bytes .../Controllers/BookingController.class | Bin 5565 -> 0 bytes .../Controllers/HotelController.class | Bin 7679 -> 0 bytes .../Controllers/UserController.class | Bin 6559 -> 0 bytes .../InvalidDateRangeException.class | Bin 466 -> 0 bytes .../com/uva/roomBooking/Models/Address.class | Bin 3113 -> 0 bytes .../com/uva/roomBooking/Models/Booking.class | Bin 2706 -> 0 bytes .../com/uva/roomBooking/Models/Hotel.class | Bin 3628 -> 0 bytes .../com/uva/roomBooking/Models/Room.class | Bin 3493 -> 0 bytes .../com/uva/roomBooking/Models/Tipo.class | Bin 1161 -> 0 bytes .../com/uva/roomBooking/Models/User.class | Bin 3108 -> 0 bytes .../uva/roomBooking/Models/UserStatus.class | Bin 1231 -> 0 bytes .../Repositories/BookingRepository.class | Bin 1340 -> 0 bytes .../Repositories/HotelRepository.class | Bin 356 -> 0 bytes .../Repositories/RoomRepository.class | Bin 1280 -> 0 bytes .../Repositories/UserRepository.class | Bin 353 -> 0 bytes 46 files changed, 175 insertions(+), 798 deletions(-) create mode 100644 java/services/bookings/src/main/java/com/uva/bookings/Controllers/BookingController.java rename java/services/bookings/src/main/java/com/uva/{roomBooking => bookings}/Exceptions/GlobalExceptionHandler.java (97%) rename java/services/bookings/src/main/java/com/uva/{roomBooking => bookings}/Exceptions/HotelNotFoundException.java (90%) rename java/services/bookings/src/main/java/com/uva/{roomBooking => bookings}/Exceptions/InvalidDateRangeException.java (79%) rename java/services/bookings/src/main/java/com/uva/{roomBooking => bookings}/Exceptions/InvalidRequestException.java (88%) rename java/services/bookings/src/main/java/com/uva/{roomBooking => bookings}/Models/Booking.java (71%) rename java/services/bookings/src/main/java/com/uva/{roomBooking => bookings}/Repositories/BookingRepository.java (53%) rename java/services/bookings/src/main/java/com/uva/{roomBooking/RoomBookingApplication.java => bookings/bookingServiceApplication.java} (59%) create mode 100644 java/services/bookings/src/main/java/com/uva/bookings/config/RestTemplateConfig.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/BookingController.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/HotelController.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/UserController.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Models/Address.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Models/Hotel.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Models/Room.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Models/Tipo.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Models/User.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Models/UserStatus.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/HotelRepository.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/RoomRepository.java delete mode 100644 java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/UserRepository.java create mode 100644 java/services/bookings/target/classes/com/uva/bookings/Controllers/BookingController.class rename java/services/bookings/target/classes/com/uva/{roomBooking => bookings}/Exceptions/GlobalExceptionHandler.class (52%) rename java/services/bookings/target/classes/com/uva/{roomBooking => bookings}/Exceptions/HotelNotFoundException.class (77%) create mode 100644 java/services/bookings/target/classes/com/uva/bookings/Exceptions/InvalidDateRangeException.class rename java/services/bookings/target/classes/com/uva/{roomBooking => bookings}/Exceptions/InvalidRequestException.class (50%) create mode 100644 java/services/bookings/target/classes/com/uva/bookings/Models/Booking.class create mode 100644 java/services/bookings/target/classes/com/uva/bookings/Repositories/BookingRepository.class rename java/services/bookings/target/classes/com/uva/{roomBooking/RoomBookingApplication.class => bookings/bookingServiceApplication.class} (59%) create mode 100644 java/services/bookings/target/classes/com/uva/bookings/config/RestTemplateConfig.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Controllers/BookingController.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Controllers/HotelController.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Controllers/UserController.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/InvalidDateRangeException.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Models/Address.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Models/Booking.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Models/Hotel.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Models/Room.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Models/Tipo.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Models/User.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Models/UserStatus.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Repositories/BookingRepository.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Repositories/HotelRepository.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Repositories/RoomRepository.class delete mode 100644 java/services/bookings/target/classes/com/uva/roomBooking/Repositories/UserRepository.class diff --git a/java/services/bookings/pom.xml b/java/services/bookings/pom.xml index 476f735..957ab2b 100644 --- a/java/services/bookings/pom.xml +++ b/java/services/bookings/pom.xml @@ -9,10 +9,10 @@ <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.uva</groupId> - <artifactId>roomBooking</artifactId> + <artifactId>bookingService</artifactId> <version>0.0.1-SNAPSHOT</version> - <name>roomBooking</name> - <description>Room Booking rest</description> + <name>bookingService</name> + <description>Booking Microservice</description> <url/> <licenses> <license/> diff --git a/java/services/bookings/src/main/java/com/uva/bookings/Controllers/BookingController.java b/java/services/bookings/src/main/java/com/uva/bookings/Controllers/BookingController.java new file mode 100644 index 0000000..66b4948 --- /dev/null +++ b/java/services/bookings/src/main/java/com/uva/bookings/Controllers/BookingController.java @@ -0,0 +1,126 @@ +package com.uva.bookings.Controllers; + +import com.uva.bookings.Models.Booking; +import com.uva.bookings.Repositories.BookingRepository; + +import jakarta.transaction.Transactional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; + +import java.util.List; + +@RestController +@RequestMapping("/bookings") +@CrossOrigin(origins = "*") +public class BookingController { + + @Autowired + private BookingRepository bookingRepository; + + @Autowired + private RestTemplate restTemplate; + + @GetMapping + public ResponseEntity<List<Booking>> getBookings( + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + @RequestParam(required = false) Integer roomId) { + + // Si no se proporcionan filtros, devolver todas las reservas + if (startDate == null && endDate == null && roomId == null) { + return ResponseEntity.ok(bookingRepository.findAll()); + } + + // Obtener reservas filtradas por los parámetros dados + List<Booking> bookings = bookingRepository.findByFilters(startDate, endDate, roomId); + if (bookings.isEmpty()) { + return ResponseEntity.noContent().build(); + } + + return ResponseEntity.ok(bookings); + } + + @PostMapping + public Booking createBooking(@RequestBody Booking booking) { + // Llamada al microservicio de usuarios para validar al usuario + ResponseEntity<Void> userResponse = restTemplate.exchange( + "http://user-service/users/{userId}", + HttpMethod.GET, + null, + Void.class, + booking.getUserId() + ); + if (!userResponse.getStatusCode().is2xxSuccessful()) { + throw new RuntimeException("User not found"); + } + + // Llamada al microservicio de habitaciones para validar la habitación + ResponseEntity<Void> roomResponse = restTemplate.exchange( + "http://room-service/rooms/{roomId}", + HttpMethod.GET, + null, + Void.class, + booking.getRoomId() + ); + if (!roomResponse.getStatusCode().is2xxSuccessful()) { + throw new RuntimeException("Room not found"); + } + + // Verificar disponibilidad + List<Booking> existingBookings = bookingRepository.findByRoomIdAndDateRange( + booking.getRoomId(), booking.getStartDate(), booking.getEndDate()); + + if (!existingBookings.isEmpty()) { + throw new RuntimeException("Room is not available for the selected dates"); + } + + return bookingRepository.save(booking); + } + + @GetMapping("/{id}") + public Booking getBookingById(@PathVariable Integer id) { + return bookingRepository.findById(id) + .orElseThrow(() -> new RuntimeException("Booking not found")); + } + + @GetMapping(params = "userId") + public ResponseEntity<List<Booking>> getBookingsByUserId(@RequestParam Integer userId) { + // Llamada al microservicio de usuarios para validar la existencia del usuario + ResponseEntity<Void> userResponse = restTemplate.exchange( + "http://user-service/users/{userId}", + HttpMethod.GET, + null, + Void.class, + userId + ); + + if (!userResponse.getStatusCode().is2xxSuccessful()) { + return ResponseEntity.noContent().build(); + } + + List<Booking> bookings = bookingRepository.findByUserId(userId); + if (bookings.isEmpty()) { + return ResponseEntity.noContent().build(); + } + return ResponseEntity.ok(bookings); + } + + @DeleteMapping("/{id}") + @Transactional + public ResponseEntity<Void> deleteBooking(@PathVariable Integer id) { + try { + if (!bookingRepository.existsById(id)) + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + + bookingRepository.deleteBookingById(id); + return new ResponseEntity<>(HttpStatus.ACCEPTED); + } catch (Exception e) { + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + } +} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/GlobalExceptionHandler.java b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/GlobalExceptionHandler.java similarity index 97% rename from java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/GlobalExceptionHandler.java rename to java/services/bookings/src/main/java/com/uva/bookings/Exceptions/GlobalExceptionHandler.java index 03b21e2..8a9f444 100644 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/GlobalExceptionHandler.java +++ b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/GlobalExceptionHandler.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.Exceptions; +package com.uva.bookings.Exceptions; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/HotelNotFoundException.java b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/HotelNotFoundException.java similarity index 90% rename from java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/HotelNotFoundException.java rename to java/services/bookings/src/main/java/com/uva/bookings/Exceptions/HotelNotFoundException.java index 3d47f5e..b0f7409 100644 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/HotelNotFoundException.java +++ b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/HotelNotFoundException.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.Exceptions; +package com.uva.bookings.Exceptions; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/InvalidDateRangeException.java b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/InvalidDateRangeException.java similarity index 79% rename from java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/InvalidDateRangeException.java rename to java/services/bookings/src/main/java/com/uva/bookings/Exceptions/InvalidDateRangeException.java index 17a8420..adca056 100644 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/InvalidDateRangeException.java +++ b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/InvalidDateRangeException.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.Exceptions; +package com.uva.bookings.Exceptions; public class InvalidDateRangeException extends RuntimeException { public InvalidDateRangeException(String message) { diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/InvalidRequestException.java b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/InvalidRequestException.java similarity index 88% rename from java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/InvalidRequestException.java rename to java/services/bookings/src/main/java/com/uva/bookings/Exceptions/InvalidRequestException.java index a8433b6..76432c4 100644 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Exceptions/InvalidRequestException.java +++ b/java/services/bookings/src/main/java/com/uva/bookings/Exceptions/InvalidRequestException.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.Exceptions; +package com.uva.bookings.Exceptions; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Booking.java b/java/services/bookings/src/main/java/com/uva/bookings/Models/Booking.java similarity index 71% rename from java/services/bookings/src/main/java/com/uva/roomBooking/Models/Booking.java rename to java/services/bookings/src/main/java/com/uva/bookings/Models/Booking.java index c546d19..269daf3 100644 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Booking.java +++ b/java/services/bookings/src/main/java/com/uva/bookings/Models/Booking.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.Models; +package com.uva.bookings.Models; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; @@ -20,12 +20,10 @@ public class Booking { @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) private int id; - @JoinColumn(name = "user_id", referencedColumnName = "id") - @ManyToOne(optional = false, fetch = FetchType.EAGER, cascade = CascadeType.MERGE) - private User userId; - @JoinColumn(name = "room_id", referencedColumnName = "id") - @ManyToOne(optional = false, fetch = FetchType.EAGER, cascade = CascadeType.MERGE) - private Room roomId; + @Column(name = "user_id", nullable = false) + private int userId; + @Column(name = "room_id", nullable = false) + private int roomId; @Column(name = "start_date", nullable = false) private LocalDate startDate; @Column(name = "end_date", nullable = false) @@ -34,7 +32,7 @@ public class Booking { public Booking() { } - public Booking(int id, User userId, Room roomID, LocalDate startDate, LocalDate endDate) { + public Booking(int id, int userId, int roomID, LocalDate startDate, LocalDate endDate) { this.id = id; this.userId = userId; this.roomId = roomID; @@ -50,19 +48,19 @@ public class Booking { return this.id; } - public void setUserId(User userId) { + public void setUserId(int userId) { this.userId = userId; } - public User getUserId() { + public int getUserId() { return this.userId; } - public void setRoomId(Room roomID) { + public void setRoomId(int roomID) { this.roomId = roomID; } - public Room getRoomId() { + public int getRoomId() { return this.roomId; } diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/BookingRepository.java b/java/services/bookings/src/main/java/com/uva/bookings/Repositories/BookingRepository.java similarity index 53% rename from java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/BookingRepository.java rename to java/services/bookings/src/main/java/com/uva/bookings/Repositories/BookingRepository.java index 16c860a..8459911 100644 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/BookingRepository.java +++ b/java/services/bookings/src/main/java/com/uva/bookings/Repositories/BookingRepository.java @@ -1,7 +1,7 @@ // BookingRepository.java -package com.uva.roomBooking.Repositories; +package com.uva.bookings.Repositories; -import com.uva.roomBooking.Models.Booking; +import com.uva.bookings.Models.Booking; import jakarta.transaction.Transactional; @@ -15,7 +15,7 @@ import org.springframework.data.repository.query.Param; public interface BookingRepository extends JpaRepository<Booking, Integer> { - @Query("SELECT b FROM Booking b WHERE b.roomId.id = ?1 AND b.startDate < ?2 AND b.endDate > ?3") + @Query("SELECT b FROM Booking b WHERE b.roomId = ?1 AND b.startDate < ?2 AND b.endDate > ?3") List<Booking> findByRoomIdAndDateRange(@Param("roomId") int roomId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate); @@ -24,9 +24,17 @@ public interface BookingRepository extends JpaRepository<Booking, Integer> { @Query("DELETE FROM Booking b WHERE b.id = ?1") void deleteBookingById(@Param("id") Integer id); - @Transactional - @Modifying - @Query("DELETE FROM Booking b WHERE b.roomId.hotel.id = ?1") - void deleteAllByHotelId(int hotelId); + + List<Booking> findByUserId(Integer userId); + + @Query("SELECT b FROM Booking b WHERE " + + "(:roomId IS NULL OR b.roomId = :roomId) AND " + + "(:startDate IS NULL OR b.startDate >= :startDate) AND " + + "(:endDate IS NULL OR b.endDate <= :endDate)") + List<Booking> findByFilters(@Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("roomId") Integer roomId); + + } diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/RoomBookingApplication.java b/java/services/bookings/src/main/java/com/uva/bookings/bookingServiceApplication.java similarity index 59% rename from java/services/bookings/src/main/java/com/uva/roomBooking/RoomBookingApplication.java rename to java/services/bookings/src/main/java/com/uva/bookings/bookingServiceApplication.java index 1a5f312..ae4765c 100644 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/RoomBookingApplication.java +++ b/java/services/bookings/src/main/java/com/uva/bookings/bookingServiceApplication.java @@ -1,13 +1,13 @@ -package com.uva.roomBooking; +package com.uva.bookings; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication -public class RoomBookingApplication { +public class bookingServiceApplication { public static void main(String[] args) { - SpringApplication.run(RoomBookingApplication.class, args); + SpringApplication.run(bookingServiceApplication.class, args); } } diff --git a/java/services/bookings/src/main/java/com/uva/bookings/config/RestTemplateConfig.java b/java/services/bookings/src/main/java/com/uva/bookings/config/RestTemplateConfig.java new file mode 100644 index 0000000..9891319 --- /dev/null +++ b/java/services/bookings/src/main/java/com/uva/bookings/config/RestTemplateConfig.java @@ -0,0 +1,14 @@ +package com.uva.bookings.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class RestTemplateConfig { + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } +} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/BookingController.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/BookingController.java deleted file mode 100644 index 5baa503..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/BookingController.java +++ /dev/null @@ -1,80 +0,0 @@ -// BookingController.java -package com.uva.roomBooking.Controllers; - -import com.uva.roomBooking.Models.Booking; -import com.uva.roomBooking.Models.Room; -import com.uva.roomBooking.Models.User; -import com.uva.roomBooking.Repositories.BookingRepository; -import com.uva.roomBooking.Repositories.RoomRepository; -import com.uva.roomBooking.Repositories.UserRepository; - -import jakarta.transaction.Transactional; - -import org.springframework.http.HttpStatus; -import org.springframework.http.HttpStatusCode; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@RestController -@RequestMapping("/bookings") -@CrossOrigin(origins = "*") -public class BookingController { - - private final BookingRepository bookingRepository; - private final UserRepository userRepository; - private final RoomRepository roomRepository; - - public BookingController(BookingRepository bookingRepository, UserRepository userRepository, - RoomRepository roomRepository) { - this.bookingRepository = bookingRepository; - this.userRepository = userRepository; - this.roomRepository = roomRepository; - } - - @GetMapping - public List<Booking> getAllBookings() { - return bookingRepository.findAll(); - } - - @PostMapping - public Booking createBooking(@RequestBody Booking booking) { - User user = userRepository.findById(booking.getUserId().getId()) - .orElseThrow(() -> new RuntimeException("User not found")); - Room room = roomRepository.findById(booking.getRoomId().getId()) - .orElseThrow(() -> new RuntimeException("Room not found")); - - // Verificar disponibilidad - List<Booking> existingBookings = bookingRepository.findByRoomIdAndDateRange( - room.getId(), booking.getStartDate(), booking.getEndDate()); - - if (!existingBookings.isEmpty()) { - throw new RuntimeException("Room is not available for the selected dates"); - } - - booking.setUserId(user); - booking.setRoomId(room); - return bookingRepository.save(booking); - } - - @GetMapping("/{id}") - public Booking getBookingById(@PathVariable Integer id) { - return bookingRepository.findById(id) - .orElseThrow(() -> new RuntimeException("Booking not found")); - } - - @DeleteMapping("/{id}") - @Transactional - public ResponseEntity<Void> deleteBooking(@PathVariable Integer id) { - try { - if (!bookingRepository.existsById(id)) - return new ResponseEntity<>(HttpStatus.NOT_FOUND); - - bookingRepository.deleteBookingById(id); - return new ResponseEntity<>(HttpStatus.ACCEPTED); - } catch (Exception e) { - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); - } - } -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/HotelController.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/HotelController.java deleted file mode 100644 index 803edc3..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/HotelController.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.uva.roomBooking.Controllers; - -import java.util.List; -import java.util.Map; -import java.time.LocalDate; - -import com.uva.roomBooking.Exceptions.HotelNotFoundException; -import com.uva.roomBooking.Exceptions.InvalidDateRangeException; -import com.uva.roomBooking.Exceptions.InvalidRequestException; -import com.uva.roomBooking.Models.Booking; -import com.uva.roomBooking.Models.Hotel; -import com.uva.roomBooking.Models.Room; -import com.uva.roomBooking.Repositories.BookingRepository; -import com.uva.roomBooking.Repositories.HotelRepository; -import com.uva.roomBooking.Repositories.RoomRepository; - -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("hotels") -@CrossOrigin(origins = "*") -public class HotelController { - private final HotelRepository hotelRepository; - private final RoomRepository roomRepository; - private final BookingRepository bookingRepository; - - public HotelController(HotelRepository hotelRepository, RoomRepository roomRepository, - BookingRepository bookingRepository) { - this.hotelRepository = hotelRepository; - this.roomRepository = roomRepository; - this.bookingRepository = bookingRepository; - } - - // Obtener todos los hoteles - @GetMapping - public List<Hotel> getAllHotels() { - return hotelRepository.findAll(); - } - - // Añadir un hotel con sus habitaciones - @PostMapping - public ResponseEntity<Hotel> addHotel(@RequestBody Hotel hotel) { - Hotel savedHotel = hotelRepository.save(hotel); - return new ResponseEntity<>(savedHotel, HttpStatus.CREATED); - } - - // Obtener un hotel por su ID - @GetMapping("/{id}") - public Hotel getHotelById(@PathVariable int id) { - return hotelRepository.findById(id) - .orElseThrow(() -> new HotelNotFoundException(id)); - } - - // Borrar un hotel junto con sus habitaciones (borrado en cascada) - @DeleteMapping("/{id}") - @Transactional - public ResponseEntity<Void> deleteHotel(@PathVariable Integer id) { - Hotel target = hotelRepository.findById(id) - .orElseThrow(() -> new HotelNotFoundException(id)); - bookingRepository.deleteAllByHotelId(id); - hotelRepository.delete(target); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - // Obtener habitaciones de un hotel según disponibilidad y fechas - @GetMapping("/{hotelId}/rooms") - public ResponseEntity<List<Room>> getRoomsFromHotel( - @PathVariable int hotelId, - @RequestParam(required = false) LocalDate start, - @RequestParam(required = false) LocalDate end) { - - List<Room> rooms; - if (start != null && end != null) { - if (!start.isBefore(end)) { - throw new InvalidDateRangeException("La fecha de inicio debe ser anterior a la fecha de fin"); - } - rooms = roomRepository.findAvailableRoomsByHotelAndDates(hotelId, start, end); - } else { - rooms = roomRepository.findAllByHotelId(hotelId); - } - return new ResponseEntity<>(rooms, HttpStatus.OK); - } - - // Actualizar disponibilidad de una habitación específica en un hotel - @PatchMapping("/{hotelId}/rooms/{roomId}") - public ResponseEntity<Room> updateRoomAvailability( - @PathVariable int hotelId, - @PathVariable int roomId, - @RequestBody Map<String, Boolean> body) { - - if (!body.containsKey("available")) { - throw new InvalidRequestException("El campo 'available' es obligatorio"); - } - - Room targetRoom = roomRepository.findByIdAndHotelId(roomId, hotelId) - .orElseThrow(() -> new IllegalArgumentException("Habitación no encontrada")); - - targetRoom.setAvailable(body.get("available")); - roomRepository.save(targetRoom); - - return new ResponseEntity<>(targetRoom, HttpStatus.OK); - } - - // Obtener los detalles de una habitación específica en un hotel - @GetMapping("/{hotelId}/rooms/{roomId}") - public Room getRoomByIdFromHotel( - @PathVariable int hotelId, @PathVariable int roomId) { - return roomRepository.findByIdAndHotelId(roomId, hotelId) - .orElseThrow(() -> new HotelNotFoundException(hotelId)); - } -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/UserController.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/UserController.java deleted file mode 100644 index a0e6397..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Controllers/UserController.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.uva.roomBooking.Controllers; - -import java.time.LocalDate; -import java.util.List; -import java.util.Map; - -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.uva.roomBooking.Models.UserStatus; -import com.uva.roomBooking.Models.Booking; -import com.uva.roomBooking.Models.User; -import com.uva.roomBooking.Repositories.UserRepository; - -@RestController -@RequestMapping("users") -@CrossOrigin(origins = "*") -public class UserController { - private final UserRepository userRepository; - - public UserController(UserRepository userRepository) { - this.userRepository = userRepository; - } - - @GetMapping - public List<User> getAllUsers() { - return userRepository.findAll(); - } - - @PostMapping - public User addUser(@RequestBody User user) { - // TODO revisar como se desea manejar estado por defecto - user.setStatus(UserStatus.NO_BOOKINGS); - // Aunque se asegure a lo mejor no es la forma de manejo esperada - return userRepository.save(user); - } - - @GetMapping("/{id}") - public User getUserById(@PathVariable int id) { - return userRepository.findById(id).orElseThrow(); - } - - @PutMapping("/{id}") - public User updateUserData(@PathVariable int id, @RequestBody Map<String, String> json) { - User target = userRepository.findById(id).orElseThrow(); - if (!json.containsKey("name") || !json.containsKey("email")) { - // TODO cambiar manejo - throw new RuntimeException("Missing required fields"); - } - target.setName(json.get("name")); - target.setEmail(json.get("email")); - return userRepository.save(target); - } - - @PatchMapping("/{id}") - public User updateUserState(@PathVariable int id, @RequestBody Map<String, String> json) { - User target = userRepository.findById(id).orElseThrow(); - String strStatus = json.get("status"); - if (strStatus == null) { - // TODO cambiar manejo - throw new RuntimeException("Missing required fields"); - } - UserStatus userStatus = UserStatus.valueOf(strStatus); - - boolean activeBookings = target.getBookings().stream() - .anyMatch(booking -> !booking.getEndDate().isBefore(LocalDate.now())); // reserva >= ahora - boolean inactiveBookings = target.getBookings().stream() - .anyMatch(booking -> booking.getStartDate().isBefore(LocalDate.now())); // reserva < ahora - - switch (userStatus) { - // TODO Buscar como validar las (in)active bookings - case NO_BOOKINGS: - if (!target.getBookings().isEmpty()) - throw new IllegalArgumentException("Invalid State: The user has at least one booking"); - break; - case WITH_ACTIVE_BOOKINGS: - if (target.getBookings().isEmpty()) - throw new IllegalArgumentException("Invalid State: The user don't has bookings"); - if (!activeBookings) - throw new IllegalArgumentException("Invalid State: The user don't has active bookings"); - break; - case WITH_INACTIVE_BOOKINGS: - if (target.getBookings().isEmpty()) - throw new IllegalArgumentException("Invalid State: The user don't has bookings"); - if (!inactiveBookings) - throw new IllegalArgumentException("Invalid State: The user don't has inactive bookings"); - break; - default: - break; - } - target.setStatus(userStatus); - return userRepository.save(target); - } - - @DeleteMapping("/{id}") - public User deleteUser(@PathVariable Integer id) { - User target; - if ((target = userRepository.findById(id).orElseThrow()) != null) { - userRepository.deleteById(id); - } - return target; - } - - @GetMapping("/{id}/bookings") - public List<Booking> getUserBookingsById(@PathVariable int id) { - User user = userRepository.findById(id).orElseThrow(); - return user.getBookings(); - } -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Address.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Address.java deleted file mode 100644 index 5e51f55..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Address.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.uva.roomBooking.Models; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import jakarta.persistence.Basic; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.OneToOne; -import jakarta.persistence.Table; - -@Entity -@Table(name = "addresses") -public class Address { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Basic(optional = false) - private int id; - - @Basic(optional = false) - @Column(name = "street_kind") - private String streetKind; - - @Basic(optional = false) - @Column(name = "street_name") - private String streetName; - - @Basic(optional = false) - private int number; - - @Basic(optional = false) - @Column(name = "post_code") - private String postCode; - - @Basic(optional = true) - @Column(name = "other_info") - private String otherInfo; - - @JsonIgnore - @OneToOne(mappedBy = "address", fetch = FetchType.EAGER, cascade = CascadeType.ALL) - private Hotel hotel; - - public Address() { - } - - public Address(String streetKind, String streetName, int number, String postCode, String otherInfo, Hotel hotel) { - setStreetKind(streetKind); - setStreetName(streetName); - setNumber(number); - setPostCode(postCode); - setOtherInfo(otherInfo); - setHotel(hotel); - } - - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - public String getStreetKind() { - return this.streetKind; - } - - public void setStreetKind(String streetKind) { - this.streetKind = streetKind; - } - - public String getStreetName() { - return this.streetName; - } - - public void setStreetName(String streetName) { - this.streetName = streetName; - } - - public int getNumber() { - return this.number; - } - - public void setNumber(int number) { - this.number = number; - } - - public String getPostCode() { - return this.postCode; - } - - public void setPostCode(String postCode) { - this.postCode = postCode; - } - - public String getOtherInfo() { - return this.otherInfo; - } - - public void setOtherInfo(String otherInfo) { - this.otherInfo = otherInfo; - } - - public Hotel getHotel() { - return this.hotel; - } - - public void setHotel(Hotel hotel) { - this.hotel = hotel; - } -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Hotel.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Hotel.java deleted file mode 100644 index 5a23005..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Hotel.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.uva.roomBooking.Models; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; - -import jakarta.persistence.Basic; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.OneToMany; -import jakarta.persistence.OneToOne; -import jakarta.persistence.Table; - -@Entity -@Table(name = "hotels") -// @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, -// property = "id") -public class Hotel { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Basic(optional = false) - private int id; - - @Basic(optional = false) - private String name; - - @JoinColumn(name = "address_id", referencedColumnName = "id") - @OneToOne(optional = false, cascade = CascadeType.ALL, fetch = FetchType.EAGER) - private Address address; - - @OneToMany(mappedBy = "hotel", fetch = FetchType.EAGER, cascade = CascadeType.ALL) - private List<Room> rooms; - - public Hotel() { - } - - public Hotel(int id, String name, Address address, List<Room> rooms) { - setId(id); - setName(name); - setAddress(address); - setRooms(rooms); - } - - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public Address getAddress() { - return this.address; - } - - public void setAddress(Address address) { - this.address = address; - } - - public List<Room> getRooms() { - return this.rooms; - } - - public void setRooms(List<Room> rooms) { - this.rooms = rooms; - rooms.forEach(room -> room.setHotel(this)); - } - -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Room.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Room.java deleted file mode 100644 index 639dfdb..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Room.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.uva.roomBooking.Models; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; - -import jakarta.persistence.Basic; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Column; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; - -@Entity -@Table(name = "rooms") -// @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, -// property = "id") -public class Room { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Basic(optional = false) - private int id; - - @ManyToOne - @JoinColumn(name = "hotel_id", referencedColumnName = "id") - @JsonIgnore - private Hotel hotel; - @Column(name = "room_number", nullable = false) - private String roomNumber; - @Column(name = "type", nullable = false) - private Tipo type; - @Column(name = "available", nullable = false) - private boolean available; - @JsonIgnore - @OneToMany(mappedBy = "roomId", fetch = FetchType.EAGER, cascade = CascadeType.ALL) - private List<Booking> bookings; - - public Room() { - } - - public Room(int id, Hotel hotelId, String roomNumber, Tipo type, boolean available, List<Booking> bookings) { - this.id = id; - this.hotel = hotelId; - this.roomNumber = roomNumber; - this.type = type; - this.available = available; - this.bookings = bookings; - } - - public void setId(int id) { - this.id = id; - } - - public int getId() { - return this.id; - } - - public void setHotel(Hotel hotelId) { - this.hotel = hotelId; - } - - public Hotel getHotel() { - return this.hotel; - } - - public void setRoomNumber(String roomNumber) { - this.roomNumber = roomNumber; - } - - public String getRoomNumber() { - return this.roomNumber; - } - - public void setType(Tipo type) { - this.type = type; - } - - public Tipo getType() { - return this.type; - } - - public void setAvailable(boolean available) { - this.available = available; - } - - public boolean isAvailable() { - return this.available; - } - - public List<Booking> getBookings() { - return this.bookings; - } - - public void setBookings(List<Booking> bookings) { - this.bookings = bookings; - } -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Tipo.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Tipo.java deleted file mode 100644 index e1a48b5..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/Tipo.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.uva.roomBooking.Models; - -public enum Tipo { - SINGLE, - DOUBLE, - SUITE -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/User.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Models/User.java deleted file mode 100644 index c5373df..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/User.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.uva.roomBooking.Models; - -import java.util.List; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import jakarta.persistence.Basic; -import jakarta.persistence.CascadeType; -import jakarta.persistence.Entity; -import jakarta.persistence.EnumType; -import jakarta.persistence.Enumerated; -import jakarta.persistence.FetchType; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; -import jakarta.persistence.Table; - -@Entity -@Table(name = "users") -public class User { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Basic(optional = false) - private int id; - - @Basic(optional = false) - private String name; - - @Basic(optional = false) - private String email; - - @Basic(optional = false) - @Enumerated(EnumType.STRING) - private UserStatus status = UserStatus.NO_BOOKINGS; - - @JsonIgnore - @OneToMany(mappedBy = "userId", fetch = FetchType.EAGER, cascade = CascadeType.ALL) - private List<Booking> bookings; - - public User() { - } - - public User(int id, String name, String email, UserStatus status, List<Booking> bookings) { - setId(id); - setEmail(email); - setStatus(status); - setBookings(bookings); - } - - public int getId() { - return this.id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return this.name; - } - - public void setName(String name) { - this.name = name; - } - - public String getEmail() { - return this.email; - } - - public void setEmail(String email) { - this.email = email; - } - - public UserStatus getStatus() { - return this.status; - } - - public void setStatus(UserStatus status) { - this.status = status; - } - - public List<Booking> getBookings() { - return this.bookings; - } - - public void setBookings(List<Booking> bookings) { - this.bookings = bookings; - } -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/UserStatus.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Models/UserStatus.java deleted file mode 100644 index 41adce4..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Models/UserStatus.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.uva.roomBooking.Models; - -public enum UserStatus { - NO_BOOKINGS, WITH_ACTIVE_BOOKINGS, WITH_INACTIVE_BOOKINGS; -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/HotelRepository.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/HotelRepository.java deleted file mode 100644 index 290f129..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/HotelRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.uva.roomBooking.Repositories; - -import com.uva.roomBooking.Models.Hotel; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface HotelRepository extends JpaRepository<Hotel, Integer> { - -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/RoomRepository.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/RoomRepository.java deleted file mode 100644 index 3df9937..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/RoomRepository.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.uva.roomBooking.Repositories; - -import com.uva.roomBooking.Models.Room; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - -import java.time.LocalDate; -import java.util.List; -import java.util.Optional; - -public interface RoomRepository extends JpaRepository<Room, Integer> { - - Optional<Room> findByIdAndHotelId(int id, int hotelId); - - // Encontrar todas las habitaciones de un hotel - List<Room> findAllByHotelId(int hotelId); - - // Encontrar habitaciones disponibles de un hotel en un rango de fechas - @Query(""" - SELECT r FROM Room r - WHERE r.hotel.id = ?1 - AND r.available = true - AND NOT EXISTS ( - SELECT b FROM Booking b - WHERE b.roomId.id = r.id - AND ( - b.endDate > ?2 - OR - b.startDate > ?3 - ) - ) - """) - List<Room> findAvailableRoomsByHotelAndDates( - int hotelId, LocalDate startDate, LocalDate endDate); -} diff --git a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/UserRepository.java b/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/UserRepository.java deleted file mode 100644 index 5f02f6d..0000000 --- a/java/services/bookings/src/main/java/com/uva/roomBooking/Repositories/UserRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.uva.roomBooking.Repositories; - -import org.springframework.data.jpa.repository.JpaRepository; - -import com.uva.roomBooking.Models.User; - -public interface UserRepository extends JpaRepository<User, Integer> { - -} diff --git a/java/services/bookings/target/classes/com/uva/bookings/Controllers/BookingController.class b/java/services/bookings/target/classes/com/uva/bookings/Controllers/BookingController.class new file mode 100644 index 0000000000000000000000000000000000000000..df36faa8a4aaad6b43a8c64632b8ef6c7608c91a GIT binary patch literal 6892 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 X0TimA7``xkV~}L9Vo+oF&c+D<#znu4 literal 0 HcmV?d00001 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/GlobalExceptionHandler.class b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/GlobalExceptionHandler.class similarity index 52% rename from java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/GlobalExceptionHandler.class rename to java/services/bookings/target/classes/com/uva/bookings/Exceptions/GlobalExceptionHandler.class index f37dcb6e7892f51ce598e55327a018f4c0c07810..af04e5fe6afffb285b6d0afb3e54aa27a6fca067 100644 GIT binary patch delta 390 zcmaDUw_i@-)W2Q(7#J9A84B4Mm>3z1lJj%*OUn}Vlk)SkGxO4mCmv9m=$a;E;)5w+ zEgY|bAv{@-F<N*UR&k%n=NM;WF=?_Oqw?g1Os@qoET1gMsI>VI^I}Hf1S}>#Wc3xZ zW@MO-RjOUc6w_@FSyiOD7+e{2*csdy8H~}rH2EQ`^5jQs#==Qhj5Op>o4k`<6J+B| boYKic=9sn`au^7jV%TNKp}Kh%$9XmY@ZX3( delta 463 zcmdll_fk&z)W2Q(7#J9A84B4Mm>3yMlk;=+OUn}Vi}Lexo$~XuGxO3XDs+gN`(Tw& zns`T2EJ*{K<m7xN<;mKN7Gg8;No!8t$8I(G4`U*B8#d=N@iB^EbJXN~CZ)|Am=`mO zC1W>#A)E5#H>_Hc){G3Z@To`<wZQ89g>1_5)?5s(3_9!#Zj20OSo}YEAzPSODlWr? oC&zIJP1a}E6`Mmyi54gnM6GbR18NWlw}=IHM+k3@<9Nsh0Gq0ylmGw# diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/HotelNotFoundException.class b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/HotelNotFoundException.class similarity index 77% rename from java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/HotelNotFoundException.class rename to java/services/bookings/target/classes/com/uva/bookings/Exceptions/HotelNotFoundException.class index 793b38320948c74b9d76e95aecaa98cdc0d52c49..27f817a237d4d0d3933261f906af9129e3ea05a2 100644 GIT binary patch delta 68 zcmZ3(v5Z6E)W2Q(7#J9A8Fbhgm>3z1lJj%*OUn}Vlk)SkGxO4mC(AP`O>{jfWa5J^ Kvss>zml*);q7~Nw delta 73 zcmZ3+v4%tW)W2Q(7#J9A8Fbhgm>3yMlk;=+OUn}Vi}Lexo$~XuGxO3XDm)i8_rWTm KwAq^RH4^}Sni(qq diff --git a/java/services/bookings/target/classes/com/uva/bookings/Exceptions/InvalidDateRangeException.class b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/InvalidDateRangeException.class new file mode 100644 index 0000000000000000000000000000000000000000..74aaa2e5b4574c30a3456bf561bef81b43d9b7e6 GIT binary patch literal 460 zcmX^0Z`VEs1_oOOVRi;4Mh4U5{9OIgvPAu){QT_9y!2vy*NWuSf|AVqykdRNyt2fc z%oLZzlGLEYy!2GK6gvY8BZE{{Vp*boPGVlVeo$#%NoFoWo{@pgCNnRy#Ey|cRKo|M zF1Vy9GcVm*GmMde#W_DEm5YIyfs==Um4S_sf!`-HFV(L!Hz~C!Brz!`m61WnCqFqc zCoHij6U2uKvXo?G7Be!K`;g^uYeok4+|=UY#B{Lv7%pRE5b#Yc$;eL$NGwXsO)W_+ zDrRKh3eGPrN=|jl1UX6$XQ1eTOk+@FU}Rus00Bk@Mv%`Km>Ad@7#Qprm>8HC7#P^J zw6`;GY-C_yU}E56U|`?^i?V`Max*Y6h=KWR3_J|HAVV0~82A|Y85kJ^7#J8>85#H( M7#J8C1i{*c0AeO}IRF3v literal 0 HcmV?d00001 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/InvalidRequestException.class b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/InvalidRequestException.class similarity index 50% rename from java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/InvalidRequestException.class rename to java/services/bookings/target/classes/com/uva/bookings/Exceptions/InvalidRequestException.class index d84f1067f65d5d0186d15cbdc59662bd3e47c3e7..449f756baf19e02459d425561349993b6fa894c1 100644 GIT binary patch delta 66 zcmeyu@{UE})W2Q(7#J9A86?;lm>3z1lk;=+OUn}Vlk)SkGxO4mC*D<_=+-1;>Vqz^ I@$Pg+0Q%q<3IG5A delta 72 zcmaFI@`XkD)W2Q(7#J9A86?;lm>3z%lJj%*OUn}Vi}Lexo$~XuGxO3XDl8SX@WCpf Jyzy5FBLIPM8KeLJ diff --git a/java/services/bookings/target/classes/com/uva/bookings/Models/Booking.class b/java/services/bookings/target/classes/com/uva/bookings/Models/Booking.class new file mode 100644 index 0000000000000000000000000000000000000000..3fade65200d9d54097c9dbcab3f0cd49ab153042 GIT binary patch literal 2162 zcmX^0Z`VEs1_oOOS9S&_Mh5xh{9OIgvPAu){QT_9y!2vy-~5!+oML?^2%nvSg^@uZ zE3qt5KPNFSUEe<`D>b=<k%1{Qg^_{LlaWC(s5Gx6GdDFXvp6#;C)F`8FTW(QBr`v+ zn2|xkCo3^Kv8W_bzaX`!IJ3AUH7_|;-!sLUkwFEklzVDkYEfcIYD!pQPHCz&BLhcq z35cIwNkB(teqKmr0a%Bpi>qIVXGkO?gEUq<oDz#OlR-x37l53Zn8VD#z`(%Bz*btE zTI89+$RLANn{$3nX>Oi1BLhobVs0uU13O50JSY@6@=9}Z5|eUL85!7$^7C^+X0U@8 zU|G)MlEk7Cm&B4(Mg~zIa6p2BOW!9yIWY$$Y|Y5P1y&QE0#?MHnwJ6+XJp_=%}ap_ zve{(jWtP}6GB9gshA}d*IOnINaxpM7DDW`IFvv18@cU%urTUfTCZ!gIK%623wjeCA zC=<ko3bK@BWEL|rDEbhHb!$cj0}W44Ppt06DySL8$-u~<&cndUzy@Mz@-PTMSlT=c zq7arY4}&;^1V~n&he3)#0v28_j0^(4sU;ctDFKN^iMgpIsYS(%46MbeC7_^W(eMO$ znKd24W!BL2WMtqhPAv(A#usNg61zCHBnTP@AaNL*r#Q7F7!eT?8aO<`$iS11qEcK# z6RT2Cq@|X)!lH^R9hnoHUs{x$>Xr#g5<Jk1qz8(6T#3syuOzdi(i&Hi1;-vJ$-*)z zgCYYX11R0HGBANcoPm*noq>Ttih-GdgMono6vSMq4BQMn47?1C417@x{0vN>_<*Vt zU|?hrWME<tDrOL75P`^wGO%IFios;X86+@eC1J8s*kq+4vOElopd`w`$RNkSz+lY4 z$iT?Jz`&}tok4yh0|NsSgCYY10~Z4m0|SEs0}F#9gAxM+14t7C11p0vg9<or$}p%h zFo6x2!obA922u+$KudZngPNAiRt60%*{uv(T9PbV8FaKHS+_FiA<UKo2aPfV3xf&+ zCxa>jAA=f$FoQaSB!dQnJcB0KK0An+Q2RhGVFd>Vh$X<l26deQ0~<Kd6+p?Dfd%9W zP%>s<WiVu5U=U?xU}a!n5MW?nFkoO{5C_Kxs9-T-Fortbj)4hm6dTy#2q!|kufxE~ zpbK`67(^A^Ic(5423f<(2)2fi!GysS8mRj4K;6Qiwgw)kp!fv21zUicVRw@Tx|>WG zSQ$)lxCs<6j9{;`GJ?I$$Y74uO&aKKvH+Wi9?2Hi-K2%?CL0D;23xQRnBfG9BDkAC z(ZI-HiPcS7=x%ZVn~3fvD+X(fxYORspo8uv7Y0@aSFj0~Zi3_;XxxF41tWtEgDsZ0 z)7gL)cOGC9(cNT+-AzbI9+IAX7+4v6!6sn336f)>Zju7$F?+0T(nEJs0N6xSH!(3d YfL-ng&T62t#)*M}!I^;(RKmCb01G@`O8@`> literal 0 HcmV?d00001 diff --git a/java/services/bookings/target/classes/com/uva/bookings/Repositories/BookingRepository.class b/java/services/bookings/target/classes/com/uva/bookings/Repositories/BookingRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..fd8eee6dec0c291fe8dcc4eee8ac6d6ba232e846 GIT binary patch literal 1828 zcmX^0Z`VEs1_oOOHFgFjMh5-l{9OIgvPAu){QT_9y!2xIpwxo=;>?o#qRiA{eJ6-0 zT&$9vfrXJlAS<yfQ9ma!FJ0e1DJwO(gq?wnk-;>-C|$p}peQphJ*_A)H?=&!C|f@z zu_RGHs~}Oo2xe@hzE?pa!azm_iL}hT6sO9d{QO+c6vw<2m&B6Ppv1iNR7M6{4No7i zT_u^hsro+o$%#22S!=9<nh?>_lFS@^pUmPCYeojn;LP;A#FEmYR7QpbO3bqH!3Zbc z{FKxjcnDeBSu-+729@T4TpE^HoSBr9>X?_8Uy@jonV(n8$e`~-Z14n@rWRFNGcvH2 zCFYc-GBN}QyZX2~hbSZ|xCQz9DnO$|AxR<J!!^iNAxW<Y9C8Y_3igHyj(#o*NqWU4 ziA5!#kW#Qwus4DVrb2>N!A`;6n2|vV)vW=EpeQRzEkbd$A#O(_#b+VN!TMkmtQi^D zAkJZA;Doz^k%1j*IU|FBZ)!<KehOH1YDsEQF(ZRuN@`AONh;K1PL-Z1j0|ELkk|w# zGS9q{)b!LMYt1l524$bD#O%bPl0^NIqQt!7#AHzT>W3iMi8<Dc492(}j+PjG^HVa@ zDl_xatr;0qU0i)!LtJr%b7l%Sj2Ri2GE*2Ccp%9(v^cd0<X}~-4u*IFIZ1jDqmH=b z##Rcon-}5~x6B+!fO;a^5nKYwk<csy4o*xFcmQL%H-}ng5$C7X_!GN^6(n^jcm^x@ zh5Gm?_y-|p0H~}cIK^vN!4n{=a)hv*tpY+3Ocyk%qUwPO+Sn>sLD`y&3|ztarA5i9 zZkai$j0|GX1dJ%#^gv}7BSSqTRKZ~nDKD*wPM#=bCE*}MvI!QacGhf+42%rS42%q{ z3=9k`EQ}273>*wB44e!M3``7M4BQM14BQNi3_J{s47|k*d<^^y3=B#j^#TwPK?X(! zC{qZ*6lM@%U|`^7W)NgxU=U(pU=U^i)eWKyVhqe+GldzL8N?YF7$g`NU}j5#&E^5Q z2Wp@c*c4Vq1}U&^X$BbvCaB9~VN!BnDR~A3xT6)p79crV32ZR3qfuN6cfTOmOkQS~ RgTanxVo(MLg$mSSRR9?A4=(@! literal 0 HcmV?d00001 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/RoomBookingApplication.class b/java/services/bookings/target/classes/com/uva/bookings/bookingServiceApplication.class similarity index 59% rename from java/services/bookings/target/classes/com/uva/roomBooking/RoomBookingApplication.class rename to java/services/bookings/target/classes/com/uva/bookings/bookingServiceApplication.class index 93ff822c7862a70776fd6464fc805130d94c00dd..af8b7863a6b4bdaaec859c2f7b10b2963d599561 100644 GIT binary patch delta 82 zcmeyt`kQrvgm_YZes*SFda*u~5u937mYJM7QNJ3O)W(AXjQnz_$~WI-lx73~K2jgB delta 79 wcmey(`h#_Xgm_VYey&q~es*SFx_%IXJyE|Jm(<3C0*pM;NNP7fV3cMA0M3RU1poj5 diff --git a/java/services/bookings/target/classes/com/uva/bookings/config/RestTemplateConfig.class b/java/services/bookings/target/classes/com/uva/bookings/config/RestTemplateConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..4d41aeb1804028479e51193554bac1e4b6aab2d9 GIT binary patch literal 667 zcmX^0Z`VEs1_oOO33di1Mh30q{9OIgvPAu){QT_9y!2xI<ovv}%yj*r)Z&tm)ZBuc z#FA8Jun;=~3nPO-R$^JAeokUuy1su>R%&tyBLkaFW?p8A9U}v?hGrNe1B-KhN-7rv zGXp0N11kd?BLlxrW?rgaX>L+#QAlD^PAVgVkWYScVoq3MQ6`8F6=W&N$Sh`L(D5PO zMb?ZAJVi+EWMt6S(DcbKO4lzgD9X%BPb*5yO)bwa%GNJWP0~-!$xO{FLGhS1BZFj6 zX<kWYZfaO&ab{9Zs$*VWeo10UW`15VBZDqhvy$`kN>VFI^b_Gq^_@}^^Q_q!gc%vM zNwA%ZL5P8qk%22XzqBYh)h!bgG~$@yt_KQoMg}ut9RrE2(ju@gtQiy;7#WxuK!AyX z5fmc~j124y3=H}Vj0}tn3=FJV+Zi}EGB7YOF>o<3FtC9IIT*MZ7#MiKY*q#y23`gR z21W)x27U%61_7ulK?Vk}K}HN9gBch&b~6Y?Zf6kLfMymCl35&3vzQn}!K%dIrin8! F004}LtPKDF literal 0 HcmV?d00001 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/BookingController.class b/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/BookingController.class deleted file mode 100644 index 106d09044e7f06ac127f37d09474ee4ee71ef71d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5565 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 BCBXmy diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/HotelController.class b/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/HotelController.class deleted file mode 100644 index 9f1da0e949cc823f1693a7b646facdb4a185d0af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7679 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 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/UserController.class b/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/UserController.class deleted file mode 100644 index 48250147622903d789c60ca7a7e10902b3c5fd5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6559 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 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/InvalidDateRangeException.class b/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/InvalidDateRangeException.class deleted file mode 100644 index 908291f1b9e8fc99d59a86743b6e35a4c1b12e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmX^0Z`VEs1_oOOVRi;4Mh1)I{9OIgvPAu&{QO*}{QT_9ymWonisaOSlFa<PVtvoN zvc#Os6qm%3)S$$?^i;SMI|B<NgH%>xS)zVUVqUs_P-$LCW-daWk%7%7GcU8mj*&rB z!v~=*xTGjEFWp)*jFExGIX@+pi-DPelZSzofsK)Y-zPIK)vq)+DYYmhF)1gNkwM5O zKRGccEU_pP#D@y9lw@QUGcs8Dkn479Mh5oW)Z*gAbg&f|j$>pH@J%hr$WIAKEK1Bx zElDjZW@O+B&Mz%WPIb!!xl0abxafgQV^CyZWMF0h0Y(N!kmnef7}yyY80;9B7?>Cs z7}&J5w=-~TWME)mV&Gz6VBi9avVv7|GcYiSf%$9<JPf=bLm1c?_!#&Z7#Rc@7#LU? P8Tc3&7#JA@!P<oYXsvgX diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Address.class b/java/services/bookings/target/classes/com/uva/roomBooking/Models/Address.class deleted file mode 100644 index 577b9f74f32aac0e9b3eaa13a840ae59fd38bf09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3113 zcmX^0Z`VEs1_oP(ban<NMh2zi{9OIgvPAu&{QO*}{QT_9ymWov{FKz3VtvPyl%mw) zVs-`=Mh1bb#Ii*FoW#6zegCAa)Z`LI2BypuMg~StMh3~C(!7$)+|;nl;>@I+RL8u$ z{F20y%>2A!Mg|F=ti<fZqLM`Yg4Cko%;J*NyyR4U&lGD$1{JJQ?x}gHMTsS;DPf5@ zrK#483>?KJAbxr!0Ueq7c_EbrU>%+=u6`k&A(4y>(pc?qN-WMy1{s}S0CHwx4l@G- z0|O%iS8+*EYHEphW?l*-gOCrx%fTf@nR)5fj0`eZ&2!GrDb3BZW@KQ=OUzAWWZ;IF z6Q2z>2x_VyiWEd4TV82yQfd(+14luAafx$&N-84*Cx{uJ3}NS&WTX~(=B4F>T*%1C zzy%hF&&*59XJlZ_$S+CFVPsJ9!4rudAT`#E47y-NX^F)psYMmJIr>?N$=SvEdHRX) z*wXhZ&d>8q&&w|Y1)>~QpZe#ehUEL_ffR7$CKeQ=rZ`nHGO#B?QVJsjYg%eaat0%V zJXYOqAW3K>vAR0Cy9O~buqP)LCnthDu838SGejDyi`mh~hmnEJCNnRy#Ey}HSwl07 zk%0via9j+`47xlFnhaWu4E#Qsd8vNjpbbe(%1H%9W`1&FPFP}5CWsFeWGTtWEC!`2 zJi!Oe1J;ZTc^a4r0#n2jQwWO)9t$Dyr5VP>z{p_2!(hr_#>l{1oLUl$lr%-LI0d4^ zf``EpRR<{9fy}bzVX$GaWn|ziPA!214I=}Kh9^XuJr9EeNE>%?YDoYzC4w|L@h~`p z#CeKSOZ;I;5hUTt!{El?4$7RVC14jbGN@{RQ&=hXvIMNi8WdXszNsY{`6&U3MTxno zC8<Tlj0~*lsU@B%;OO+^WME|Q;bCB9U}I!pEry8mrla~_L_-rZP(d04c^Cv31Q{6+ z8bIC$$%ODQh=OD|(_!8RiH7qqh=VNRPDl6~Bp$`XAOTX%laAzXkVGsGgA_=DBOUH< z6%9?o9tY`7<YACykYi-v3eGPrN=|jl1SL!!Xads%6*joa7uUR!%#uoLT*VnUIa@O_ za6+?TYB7T%10w^d$Y5t+0tF=lBLh1F1A`O;GXn<$0|Ur4T&WD)3_J|H42%qXQ4IVH zOrVg1suN*gLP!WPFfs@iGl0ZI83ggD5My8hg(g%5Hv=QW3?@);LM1>3!EJ>aF3G?I z3Rg@O(hN`)G7L<h(1WT_U|?d9XJBAZU|?oYEM`z*P)=n~VNhjIi)LU<Wl(3(U=Uzn z1eFC0j11Zg3=GB$j0}tn3=FJV+Zl8=GB7YOG3YTcFmN$2F)%O~Ft9KfGUzifFz`SW zF&Hoyg6jiK1|tS0umLL=n7|>Z1~NcPdmDqXmd-W?b1m6z3|3l_EZZ3Dv?N)#F*s^T zvTb8<LD--K4sT-y76uarP6ks3J_a)eVFq&sNd^lBc?L@cRR$}t%^ncbp*Axxs6k@` z!~%sn$en87&;`Y+8aOyv7(lX841x@-V3sU{90MDJ2Ll6xBpZVO0|SF70|SFN0|SEu zIO-V~WWk>DWblH9iatD4wlH|FfrknkI23Hb?m`a{Uj|!fh}bbOfkTf?OL{AVH^Rq| zFm+^LWpDzU07?}M3~X?pu|d-#$epZ=V5c)O_%ZlnaZ|tsG&i||O+<H-DT5h?o3ytw z1faXglYy1N3v2?Wn*_iq8|o%d*fBB$VRch5x|@8#CZfB^61$s%(cKitz{(H=HUZO3 zpm=8l$0sWzI4&6(Lb1kO7<$}=f=xtslMVK`3qyBPBm*l$6xakzH;FTVQU^4gKxvDS zAp&bSMWTmOEZ9VJH#uMrr$}@+B{HxwB!Nx9bdv;f+=0?MBSSP+H^rd4DHUuYx|^J_ zyD0|UO_>a=3|U|kFx>>omGHQe0_VFphIlM#JOSNJxnL8~-Q>pLjxCKRpu4G%ft8^M kYyzg6K;;A6O`x)Xi6IG`!IHs+52y-AVPIfLg_QSc000&!F#rGn diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Booking.class b/java/services/bookings/target/classes/com/uva/roomBooking/Models/Booking.class deleted file mode 100644 index a5ee91b9b51857ae5a869f006c3311bd8c2c78be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2706 zcmX^0Z`VEs1_oP(5OxM8Mh2zi{9OIgvPAu&{QO*}{QT_9ymWov{FKz3Vtpu=oq>gs zK_Dx!EKxrvF)v-;KPf9UxrC8{DKmwUfzgwZK{BW`uOu@!H7v6@Gbtz4F)uH_B(Wqj zKd+dPLBc01F*~uSBvHR0wWv6=xFj_%IaS{?#hQ^p1*?>MYF=tlVo7RBSYl3Tsx>16 zM{x;=pI%8oM`nIrNM!+7ho_6HUx;T&BqM_~Ry&*$i!+l!M&}oRoSB%z%)r3Fz{tQ> zTAW(snZn4R=z}L%LW@(2tQi>;uo~@^pPA>JpHrHfXU)jKl9!m9%E-VDGBzF*S|UZM zX{kk^AV`5I@&hZ7$7+;sVqRrPzJDIbORQ<BCCM3#4A@n=fh3`xXLWUScMW1>U{6jg zPEJfo1$hQr6gWeqVY+->gWO#i8Q4I{fM5s&<>%*GGcvG)6odW6SzMA>RN|6YlFG;+ z>H|(Hpah}slb@WJ0}{4oWRSt?Nk}kQGcs_2jfhVHo57J+nv;{5lmiO9)Vvgs35*OJ zsd*_-c{ZEOyv!0iMh0dL%`ip=7U%qwR4xW)25lY&bp{Pa27aH+yi~u^+@#c^5Qs5C zV5fv77G;9?P(hZGjLc$CvcePF&`e;>$WWl+NibR9QveP%tbv17P&15^fsw(8hk=!W z4a73xVGv*t1hLF`7-SjbKr9O$1_cI15X*{(L6t!f7J)8|3<AEXB^miC0f|M4xv3?o zMa7H^ti`D%ptxnx@C1b#YdVC>tfA@2$iP{gS^`ShAO$KK`1}D<WeqZbGaaEtSwoYc z9*8BNU?6M>NEO@?5C^1%fF&Sh){G21#i=F1i1a9-fg^Ys8F<oBREle8VpR%CoT(+Q zuyn|kj?4+pFD*(=b;|^$RUT+!(F5fGTq)i)uOzdi(i&IU1WuZuvMC8t7#A}rGB7fL z3Mf_vCQw>nU}RutU|^79U}oT8U|;}6K36IOHv<m?F9Rb3UlapB0~08vK-Fn6Ffj-* zFfj-hGl(#V7BjFih%qojl!>P@NH9n;NJTR+rZPw~$S^R0(iNsYdBXY>z^(+jOMroq zK?!1?GJ^`lHLBQT)gZDw42+;W%fQH>$-uy1%)rRN$iTqBs<oX#Ya;^#0~3P|0|NsW z0}}%SgAxM^gEE6I0|Ns{69WS)gC2uExZqZ2FkoN;8!&}|iGhuQfk6RefR^-D216~K ztqjImx?34cwIo@#GMH;gvTkLtM3^lH4o+1D76vs2P6l-bJ_Zd2VFpbGNd_$jc?NB; zeRdEtq4qH_C_p0u#1dc-1iMaw!J0u198n6OOv%6kas?<;GO#k(FfcHPvNEtTFfa%( zFfdqyr5G4g!H&0Ou!A}tM1wra26i~Yi4gDWF|ab|gPkJ=wvY|(95$$PK-RD_f~{d> zuxD_92C6<hP`5A`u7L+C8#ttmz$T&xs3U_DhMTmvG8m(~$&7)O!5nM?rkg+k!wB{| zD<jz3j10~UE?C@TyaCNkR$vp+-Q>#PhRsc;=x(xOU}dlen}F#iP!z%41d0Ym26qMz zEN(JIcasy?M07WKGI(KglR3JZ+!$CH+`%Sbx(SkZpmC=FP7>Y>K3Lpjj_xKeu!-ny z^2P2Zq$CeXPks!n4E|sfFx>>nu~0WblBpk7H(8>)DF|#Ls+*V?{J}9C0M2Tl@+pvk Nfgy;25mYJ#0{}VR6a4@H diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Hotel.class b/java/services/bookings/target/classes/com/uva/roomBooking/Models/Hotel.class deleted file mode 100644 index d72ceb99fad6aca5b773352af067e684400e300e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3628 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 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Room.class b/java/services/bookings/target/classes/com/uva/roomBooking/Models/Room.class deleted file mode 100644 index 639dfc6c14c9d8d35644111bc82e559c85320f64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3493 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 diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Tipo.class b/java/services/bookings/target/classes/com/uva/roomBooking/Models/Tipo.class deleted file mode 100644 index 5135c701a6b3615a52f22343bfe31eb6d574d0c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1161 zcmX^0Z`VEs1_oOOGj;|hMh5xh{9OIgvPAu&{QO*}{QT_9ymWov{FKz3V*QZJf_!!c z7DfiXti-ZJ{hY+SbbZ&n(p*LcwqQ>`cOO?q21OqN`mGrm*j)TWoj{6NgF`(-Tp1a- zUHw9RRl*#7LS2Iy8I+=lFoVM;IVUqOv&4>(fmuT{jFExGIX@+pgMpQcfssLghe41* zh>?NK2C76%!w2Ew;F6-uymV_%%`i>|Mg|cc237_(4hD7*N1TU&9mL@Pain+{I2hPK zEEygKP6jSU27aH+yi~u^+@#c^ki?{%R7M6NpZw&+oUp{AOb{O|$i=|SAi&7LQj(Eb z%*eo{lA2eVtCE+Po65+*3*qD!rDWzM<}fk{_@<U*<fjBA7A5AUmZTOHGcvH1CFYc- z7Be!aXlN1+2QCJ622FMb4Mqk5B>z<wm!#(MFlaGoGcs@{78NB{Cg&GaGBRi(hk}1n zR%&vIwI@=*z=S+O;mHnmh<_R*gDJ8$Xy9oQj3Q7l=<_h>Fc_ej;GC0KTx^YGE!;?i z7eI;1nvsD85^P+-`K3k4scxB|5a$FXLOqaDMh4E{%=Em(lG377Mh0Uf6G7T-2)fYD z+QE>4k%5_kfq}(A5|j!U7#t))2>?uUFt9N&2uOiq9;AYSgMpiYhk=oSmw|yHmw|-= z1RQrWFh&aTF>hz!-^?Hk=7_R@IbvXr1S^;$$+nk)F_L)`gK%&p%O(b~;7Ha@43fc{ z8KgHdFfcGN$TBc62!V}cVc=z8WsqWEV^C*cW{?BRf>a1H2r)2$tu|y}20NKuOIv0; zgFM0jHU>rp2B;>GI~f?*85BT%U{GdYVBln8P!wQbP!eEZ;ABu?P=$KLjDZzwn%E`= z=}2#8t$mR;AgB5=OYdM%)7b#FALKfS;f!z>aWd#I=t5nj#lQr%noEdLYX^hg0R~3g Y`an)$Wn?gH0C~y?Y`igp379qo08DNAVgLXD diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Models/User.class b/java/services/bookings/target/classes/com/uva/roomBooking/Models/User.class deleted file mode 100644 index 394ebce81f001ce6d49d3ba0e61ad9849789bd7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3108 zcmX^0Z`VEs1_oP(6m|wCMh5xh{9OIgvPAu&{QO*}{QT_9ymWov{FKz3V*SwK)FO5U z7Dfhvti-ZJ{hY+SbbbG%tkmQZMh2$L6h;O{PeumGpwhgO%-qzl%;L<XoK(lWy!?{H zlFa<PVnzlDpRB~}#G;Z!{esk@;>_Zb)V$<Wea{qYMg|qEQtqjFsYQt;sVQNJIi;!A zj0_ybB_Mu!B>^3o`FSCg1z;VXF0Otdo*|Kp4ANNba7rxBOa>X9UjTAuVh%F{0|Nsi z14~|FZYm>#kPpJM!6ikRdFj@S46LcSiJ3W!3~a?Ei6y1Qj11~N1i~#Ctk9Z~K>@2H zT=PnEAwC6}UIy|lBZC}HrBJ`I1&0KA`nfYQa3n!us+f^M0OH=#lFS@^pUmPCYeojn z;LP;A#FEmYR7M6fG-(@r4u{6SwVgF1gDzNMT4HfYYEeaQj(%2Ra&~cko_-=cg7v+M z^Yc8@^YV*8;VzHW@&0+KA^E<Ed6l35&rK{SNKJ97WMp6~Elw@+OkreTO-n6F&R}G~ zuG<YH3H3XxtE0PX5F-P7a$<3EVoE9_gCbTNogvatUCfR?K8y@(Hko;uC3cJq%o>_u zj0`N!`6;Pf49pDLJPhg#8k`Ke4EpR0dW;OJL`5nOg8_pGBLlaef4q~wzqhBKdoU*h zBZCnSgD^;(-zPIK)vq)+DYYmhF)0U}r1Fy!bHWmfGC_Q(AWKO`W--VU1njhCWQf=B zgv25^2SO7i77+p_L6amzBO<+kLZp?JHV~QQG{d+U7#Xa17_1p=7#UcLQ%gVzghj&> zB4NkFV9($HDiKmkTp_tpR0HA{<Y0j)cH&`hW^iF-;4Drpfq0vdK}!RiqDyg?br6-- z5F^}p7~B~=7#X;WQ%j)vqL`6E7-}VI@QL}LL~vz6Dm0P>d{av@@>2p5ixP8FOHzx9 z85vm9As%Da(DVc)8$TWfRt7dk2KMyS5<hSWB%+~-=`WDdARYz*20=y!_F|Y)j&x{X zfTY8C7=%F5oaqQpYiei`>1##??sR0I3c*}~@G2vN1%@DzkqdHPEDwVugA^l!C3+YV zX$B~vas}s?7A2>;WrFe*C#Ztb0~Obd3^G^?1J}Hg%o0%9gS{#M#}cRj1{Fue42lel z44}$@m4OKqCk%`X><kPHQVh%t91IK$ATMyGGH^5SFz_-kGVnz)@G~%hA_S_An}HEo zLWn^SyM!=<2vkChfeE2Ql!1{!ER{i=L4tt^6iy6G4AKk?3``6%U{@$GFfqt7Ffhn5 zFf+&(Gbk`9rZOloC^M);Gccwys4}QA@GvlfN;3vV22BPA20I2O21W)31|F^L3|d;7 z7<9HW7;XfcXUxFBzz6oHCIbtDG6Oe*7J~^$B}6@gDT5ifK2&EgXJCf9!2)dN3I-+y zHU<U;B_uPoq_;6xYUyrcu+@@e*~Z|gCCR#t!4+f^GXuybIk4+>pf>3;2r%d|h%)Fi zNHZ8PC^8s=ZMK7$3bmPmK?xfAAeI1wAOjP~PEgtgyIKiU%rdZm#UvS|7+4uR;jUL= zkYtcyU}f-PU|<ksWng7sU=UznU=U(pU=U_tV2}iR%$van8c6yKj9^c*YHeZgT>}pt zHn5-x*lnOtWnf^1x{VQ3I59ARLjx4TAeXUeNpEHF1^Ji>>|-vldo37P87#pjfMS_} zfemT`h{ehPvH|2qRz|QJ85#T;0<gF#a08l~Y``X>yD6B#0mDt&TNwh;-Q>W)%HRk# z0n<&OaApLD8!IC?%orI$u(~M}-AyiF6VcsdkKIk7=x*`=#~&#DVY&&Dg`nXCibF<* zaE1sh;be&JCLgSBa%OPB7EVa{0upxt46F=+U=uLi1j)TnH-XX=BSR!Z6g;y=gOdhw zx{5(}TL{=>^zd?L@POyGIItlB3{2pZ#HOXal_3TcZjc-WabpAnD?=pMBuqDgas?w& mu3!V_3V7^-asd-VJUD43fU_s4AWLLmU`S$MWDqE3NCp699f_s@ diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Models/UserStatus.class b/java/services/bookings/target/classes/com/uva/roomBooking/Models/UserStatus.class deleted file mode 100644 index 61c762de029dfc346db4ec48cd71170419987eb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1231 zcmX^0Z`VEs1_oOOGj;|hMh4a7{9OIgvPAu&{QO*}{QT_9ymWov{FKz3V*SwK)S}>$ z#FEltb_Nzk2EMGsvPAuy#JqHU*SykPMh0#_|9B^Ve{WAe_h3c_bswUPvSwru3HJ=~ zh<9`j@eFfCGC&M0?CFOg!R_i7>Z=mw=o9K1%*db-O|(TEHpw}ed6^}4j10^gnqiC# zEYA5UsT>TfTnvm10z3?Y3_^?yY&K9OVj4aO9|o5cW#*+@duoPpGB7fT@G!74uyHW3 zgE-<m4D28d2Z$rZ!@$A724czZFmN((F*5M`Wag#%mF6a;7KJ1x<)kt)2>IkEC+37D z7G;9?U_mYhW(EO929}bH%wk3cE|t{0(p;6i#N1Ry23`m!zbGX$FENLaLBKb)BqKj1 zAh9ShH?<_SsF;y~tt>I8G_{zKK}$oE*wEl&P-oC&XV73|5J2)}WpPPrE)RnigEk`r zXJS!NVr6oEK_$pwq_FT$%1TWxvG&9w<OvE@cCd5&(-;}7u>_$ek<kST5`7*99R>qN z22*5noO2S3i>;9?hsKR2k`O3CS~D`RK!T7fIKQ+gIn^x_6#D##WUL4BIU@sSaAta5 zVo7OHDkFm>njtnsy4KFx!H|KGfti7UfyF@*lsXs~93(*r159%;urV+QNP$uWNCg82 z12+Q?10w@30|P@U0}BHPIPPX(j1=Ny-p;_knL!xL5oG~$#K0U0Rxn4BZ7&03B=aT) z;owM?O$=hek*u2-B!f3INN;3dU|?d9Wnf_7VqgMWqt3w0AO{u&$p|tCF))FxG-O}~ zJC$8aTV^|hJVGNI10w?iR1?U33=HfH3Lv*LC^IlHa56C{3NSDz2{15lGN>@9LOo!{ zzzQ}^Y!icYq&KtHzDOI86MdPbcQB~wYyjI2auvjIM!1VO8FUzQp)S&5U;<msCB&$; fgF){A10!yIAg8c0G8i_1JY@tn-k8AzOq&7#DA*S` diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/BookingRepository.class b/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/BookingRepository.class deleted file mode 100644 index acea7157a6e378b53cac42161cfad3721d990743..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 zcmX^0Z`VEs1_oOOC3XfTMh2tg{9OIgvPAu&{QO*}{QT_9ymbAb)Pnrt%#!?~%+z9i zs32UdlAVEtkwG9Uu`E$PCowNw-#;lUHMxYHfsK*DG`}cazqp_%GcP@@C^0v+JijPg zKP9mwQ9r97QNIXgY^A<eK_bFHMh1zr%)At*%AoxGT+bB8ycCzjlGLEYy!2E?23rkJ zAFy2|nYpR@KKaRsIUreUtb&>l(bAI49DSe6;u32{2F~Ej^t{B9(xOyGhGa_2vhl$d zRKEEssX6dKvbM8kWRMIh%>y|$EVDQ>DJRu2FE76&u_QA;ub7cR--p-`3M@@6s<dWg zU@c3`DNSW$2n%-gadi$+NK$YM^7mDM#)?9cLb!)(kgGzH9w-7mQ}i-Z6l@jj4HX>y zTojV@ic1oUN<iVIV54Af1Qkq$1h9ggg1s>#gA%H90}??ISCU$U;%-CS?na8$LXeyF z!6sNUGO$5h#K^!2cLgH@JJfPU1_9sHl8pQmu<F#3)S_ZW2EmlnoYaz3sNb9_JyRGN z#55pr3QlUCc_pdosYTYBVT=sQK3R#`iA5!e`Xxn)dBuszpdi){L9i2ZtQi@MaXTC> zN&4oeWTsVS=A~ORGN`(^`nZO;;tFbL7&9_3Wu`DP2ti!!n3LmF>5*TOngen+i-sr2 zkw*9pf`pJ>21pky<`@~+!F-S@T*3LJMaijdnK`M93}Vo5L1Y{~P{v?nXhI4hNM^Jq z+Se!<k*Fk&WEm_v?5x=s85kLu85kK@85kItSr{4E88{eN7&sXi7?>Ei7`Pc27`Pc2 z8F&~N8F-5s_!#&Z7#Ng5>IEPof((odP^J)qDa;_kz`(%E%pl0Xz#zoHz#z;3Dtkm3 z#2A>tW(qSfGl(-VFi0>kz|58eo6Q4q57a;@uqmvJ3{qg-(hM>TOt^H*!qm!vT`mtM J6`=l51OSO;f9U`K diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/HotelRepository.class b/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/HotelRepository.class deleted file mode 100644 index b73aac1a1369502b5a75ca393138c15128208a85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 zcmX^0Z`VEs1_oOOZgvJHMh1iA{9OIgvPAu&{QO*}{QT_9ymbAb)Pnrt%#!?~%+z9i zkNlF<9Joj&I|B<NgFsedS)zVUVqUtwe^ORzatS*F8zX~heo?x9aY0dLUV2(lVs2`A zeo?l5N@7W(epW%Eei6*jN`0?_M1+Bi3|ztarA5i9Zkai$j0_@Z_UVDFVr1Y9&P>ls zEGaEYWn^gZ0f`}7Z|y^t)iyrZeD9l|l9~hcw>6Sgo_Qsy>8VB5cGhf+42%rS42%q{ U3?RV7z|O$Hz{J48zzL?g0CY!lGXMYp diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/RoomRepository.class b/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/RoomRepository.class deleted file mode 100644 index b3854e3d17c9d211309eb82205a68b60efa16539..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1280 zcmX^0Z`VEs1_oOOS#|~{Mh5-l{9OIgvPAu&{QO*}{QT_9ymbAb)Pnrt%#!?~%+zB2 zp#1z?xIiU40}CUAKvrT|qJB<dUb?=2QdVkm2|EKDBZFyvQM!I{K~ZL2dRkFpZfbdc zQMP_cVo9QYRzaeE5zNd=eXoK<gn^6<LTQ<KDNdE1DUNw59{DAyIi4wu3=$fio|-;j zdrC_(bM*ZSN;32F5_7B>890M8)AJHbN{dn%8LV+Av+=>^FW>x>)EtP9tnI8B8JIFt z7#Y|zV0H@lrj}&nrvxN|Twjt}RLsaA0CJmSPL5M0+-1TVC=T<<EH1HTWH7@NCC&|s zU>nL3GjkG?a#BHoT@1C%F)zg>u_U#ak-=8O6A~09nYpR@KKaRsIUpHptb)j)26bEl zCHjf;hGbA_9>{fJnZ=n&IjN3$dHE%YpeQS5WYG5^Hf02srWRFNGcvH2CFYc-GBR>1 zC@3fdyZX2~hbR;&xCQz9Du6;rp@<745$@p{<f>4l2aZ6!%oGJ%1$#rVjH926LXln~ zEL0V26-tUqQ{hs6{visk5uU*z!3r8+L6B)sYmy+=K(m5E5?mf)Taq3qqj;u3tSi#X zOo1x^S&A?YWMq<FDkKgS>=f*c;0i%f{y`|*B)#I2#G(>Vtb)`U!zDGrEKM#(22QvN zMh14Mxr_{4!TF^{$*FFcIjM{c!l1xGWGy{V_F-hGha?lE>}pMPgrH<q!YKjCCeOT* z)b!LMYddQ;Mg~R(W(GzERt5$JW)?;Ub_NaxCI(Ih1_mYuE(Tr(1_n+h25trh1|9}b z>B7gr50@4IOS3XUr34v-7?`0tg&9N`7#O%27#Tzv7#YNh8N|VAd6_|K86+4O7$m_q LNP$Uds4f`*XU1%h diff --git a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/UserRepository.class b/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/UserRepository.class deleted file mode 100644 index 85a2cf78e1629cccc1a35a91af8d6a0ca15c79c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmX^0Z`VEs1_oOOZgvJHMh5-l{9OIgvPAu&{QO*}{QT_9ymbAb)Pnrt%#!?~%+zB2 z(Bjl0xIiU40}CUAKvrT|qJB<dUb?=2QdVkm2|EKDBZFyvQM!I{K~ZL2dRkFpZfbdc zQMP_cVo9QYRzaeE5zNd=eXoK<gn^6<T*3LJMaijdnK`M948o|^>49uwWZ(?WOwUU! zDJ@E6WT^K6i6Pr=?L(H$Ha^(=?wg;Ingj8*HIhx9c_pdosYTXy)@+Onj10^Sj0~&{ TAi%`H&cMLH#K6J838uLK_J492 -- GitLab