diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/RoomBookingApplication.java b/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java similarity index 90% rename from java/roomBooking/src/main/java/com/uva/roomBooking/RoomBookingApplication.java rename to java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java index 1a5f312d49b2d1db4ffe587e4ae02c35e1e9a506..0a5db248da6e6be909302e323931f79151b0ed62 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/RoomBookingApplication.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking; +package com.uva.monolith; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/GlobalExceptionHandler.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java similarity index 97% rename from java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/GlobalExceptionHandler.java rename to java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java index 8f6ea711bd072acd3ca0d599333ed9989ee7ca9b..9428c51a9c63c3623d44752c9e3cbe6cf78ac19f 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/GlobalExceptionHandler.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.exceptions; +package com.uva.monolith.exceptions; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/HotelNotFoundException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java similarity index 90% rename from java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/HotelNotFoundException.java rename to java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java index e0994aea52bc4eabbbda0c2ef5d37eaad78a7c31..129a0b1086b4b78eb1f1725b9f241f51ce5540f8 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/HotelNotFoundException.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.exceptions; +package com.uva.monolith.exceptions; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/InvalidDateRangeException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java similarity index 79% rename from java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/InvalidDateRangeException.java rename to java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java index b0e28b077c6f1b59a27bdb32cbfd9f56a18cc5d2..5fea986ef1e9279c459bc5aff10932049f283333 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/InvalidDateRangeException.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.exceptions; +package com.uva.monolith.exceptions; public class InvalidDateRangeException extends RuntimeException { public InvalidDateRangeException(String message) { diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/InvalidRequestException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java similarity index 88% rename from java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/InvalidRequestException.java rename to java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java index f7c25d1943e639dfe9450401a040498fc6e4459d..ca09e054420dd174c4d2c3424dcc8fe74b6c8576 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/exceptions/InvalidRequestException.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.exceptions; +package com.uva.monolith.exceptions; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/controllers/BookingController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java similarity index 62% rename from java/roomBooking/src/main/java/com/uva/roomBooking/controllers/BookingController.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java index aff1e60eb3f3a27f57cd2a0932298528178c1580..f309f2b1be9be7f5c7dbd1f0e46309cab95f4a34 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/controllers/BookingController.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java @@ -1,20 +1,20 @@ // 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; +package com.uva.monolith.services.bookings.controllers; 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 com.uva.monolith.services.bookings.models.Booking; +import com.uva.monolith.services.bookings.repositories.BookingRepository; +import com.uva.monolith.services.hotels.models.Room; +import com.uva.monolith.services.hotels.repositories.RoomRepository; +import com.uva.monolith.services.users.models.User; +import com.uva.monolith.services.users.repositories.UserRepository; + +import java.time.LocalDate; import java.util.List; @RestController @@ -33,9 +33,29 @@ public class BookingController { this.roomRepository = roomRepository; } - @GetMapping - public List<Booking> getAllBookings() { - return bookingRepository.findAll(); + @GetMapping(params = { "start", "end", "roomId" }) + public List<Booking> getAllBookings( + @RequestParam(required = false) LocalDate start, + @RequestParam(required = false) LocalDate end, + @RequestParam(required = false) Integer roomId) { + + List<Booking> bookings = null; + if (start != null && end != null) { + bookings = bookingRepository.findByDateRange(start, end); + } + if (roomId != null) { + if (bookings == null) { + bookings = bookingRepository.findByRoomId(roomId); + } else { + bookings = bookings.stream() + .filter(booking -> booking.getRoomId().getId() == roomId) + .toList(); + } + } + if (start == null & end == null && roomId == null) { + bookings = bookingRepository.findAll(); + } + return bookings; } @PostMapping diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Booking.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java similarity index 93% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/Booking.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java index a46e2a67a244f696990373918022141adab1f4a9..b3b0a5a3f2738eec8693f038a281ab3844a5c169 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Booking.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.bookings.models; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; @@ -13,6 +13,9 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import java.time.LocalDate; +import com.uva.monolith.services.hotels.models.Room; +import com.uva.monolith.services.users.models.User; + @Entity @Table(name = "bookings") public class Booking { diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/BookingRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java similarity index 69% rename from java/roomBooking/src/main/java/com/uva/roomBooking/repositories/BookingRepository.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java index fc6363dd4b0e3b8887e2ffe501399c2b3a96133d..103dbaa5ef76f8027b8152810fb9ca67aba19546 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/BookingRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java @@ -1,5 +1,5 @@ // BookingRepository.java -package com.uva.roomBooking.repositories; +package com.uva.monolith.services.bookings.repositories; import jakarta.transaction.Transactional; @@ -11,9 +11,15 @@ import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import com.uva.roomBooking.models.Booking; +import com.uva.monolith.services.bookings.models.Booking; public interface BookingRepository extends JpaRepository<Booking, Integer> { + @Query("SELECT b FROM Booking b WHERE b.roomId.id = ?1") + List<Booking> findByRoomId(int roomId); + + @Query("SELECT b FROM Booking b WHERE b.startDate < ?1 AND b.endDate > ?2") + List<Booking> findByDateRange(@Param("startDate") LocalDate startDate, + @Param("endDate") LocalDate endDate); @Query("SELECT b FROM Booking b WHERE b.roomId.id = ?1 AND b.startDate < ?2 AND b.endDate > ?3") List<Booking> findByRoomIdAndDateRange(@Param("roomId") int roomId, @Param("startDate") LocalDate startDate, diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/controllers/HotelController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java similarity index 87% rename from java/roomBooking/src/main/java/com/uva/roomBooking/controllers/HotelController.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java index 6d215e46eecc6ab7e92cc2b1753a632fd321963f..5852aa794da7dcd05a8359f2756e296c829a40da 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/controllers/HotelController.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java @@ -1,24 +1,23 @@ -package com.uva.roomBooking.controllers; +package com.uva.monolith.services.hotels.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.*; +import com.uva.monolith.exceptions.HotelNotFoundException; +import com.uva.monolith.exceptions.InvalidDateRangeException; +import com.uva.monolith.exceptions.InvalidRequestException; +import com.uva.monolith.services.bookings.repositories.BookingRepository; +import com.uva.monolith.services.hotels.models.Hotel; +import com.uva.monolith.services.hotels.models.Room; +import com.uva.monolith.services.hotels.repositories.HotelRepository; +import com.uva.monolith.services.hotels.repositories.RoomRepository; + @RestController @RequestMapping("hotels") @CrossOrigin(origins = "*") diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Address.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java similarity index 97% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/Address.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java index 5e5a6a8488c83f47ec616e14d904ce079bbf3e5b..5f31a2a530da46c00460ad6cc6151b0769c1da61 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Address.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.hotels.models; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Hotel.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java similarity index 91% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/Hotel.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java index 182fbc49cc62df8dc1adf17c9383866bee41e10e..7400dfa789c29c788e497e23393827bca10298aa 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Hotel.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java @@ -1,10 +1,6 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.hotels.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; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Room.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java similarity index 94% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/Room.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java index 3cbd277c3ca5458abdc08036ab725562e51fd18c..0ac71f500f7c805cee67dccd04d77ea354fab6d4 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Room.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java @@ -1,10 +1,10 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.hotels.models; import java.util.List; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import com.uva.monolith.services.bookings.models.Booking; +import com.uva.monolith.services.users.models.Tipo; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/HotelRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java similarity index 56% rename from java/roomBooking/src/main/java/com/uva/roomBooking/repositories/HotelRepository.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java index 5b7855e0f78e007e5ed38560666f3c2da113849d..ad88e98985f82e695aa9ed40df30d1501990eff5 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/HotelRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java @@ -1,8 +1,8 @@ -package com.uva.roomBooking.repositories; +package com.uva.monolith.services.hotels.repositories; import org.springframework.data.jpa.repository.JpaRepository; -import com.uva.roomBooking.models.Hotel; +import com.uva.monolith.services.hotels.models.Hotel; public interface HotelRepository extends JpaRepository<Hotel, Integer> { diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/RoomRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java similarity index 90% rename from java/roomBooking/src/main/java/com/uva/roomBooking/repositories/RoomRepository.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java index 05dd20b63d21e9b3be9d1144dd41eccdee10e0e6..78187e4389873bb649fd451ae4cb7ed1f1f0c473 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/RoomRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java @@ -1,9 +1,9 @@ -package com.uva.roomBooking.repositories; +package com.uva.monolith.services.hotels.repositories; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; -import com.uva.roomBooking.models.Room; +import com.uva.monolith.services.hotels.models.Room; import java.time.LocalDate; import java.util.List; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/controllers/UserController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java similarity index 93% rename from java/roomBooking/src/main/java/com/uva/roomBooking/controllers/UserController.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java index 3a744d5ab396f2d71f0e2452b90c0a3b6c21a673..812d0b83ff5b82c078d3f471c479fb680db252df 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/controllers/UserController.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.controllers; +package com.uva.monolith.services.users.controllers; import java.time.LocalDate; import java.util.List; @@ -18,10 +18,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.uva.roomBooking.models.Booking; -import com.uva.roomBooking.models.User; -import com.uva.roomBooking.models.UserStatus; -import com.uva.roomBooking.repositories.UserRepository; +import com.uva.monolith.services.bookings.models.Booking; +import com.uva.monolith.services.users.models.User; +import com.uva.monolith.services.users.models.UserStatus; +import com.uva.monolith.services.users.repositories.UserRepository; @RestController @RequestMapping("users") diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Tipo.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Tipo.java similarity index 53% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/Tipo.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Tipo.java index 95d51b835acfb9849ac7b175412be65b970176e0..8b240e8d25bcef2caf06e509a59c9ad2862bf919 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/Tipo.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Tipo.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.users.models; public enum Tipo { SINGLE, diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/User.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java similarity index 96% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/User.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java index 05e1a24cba65aba82738834b8d09ae4fa621234a..3936e7d566f1c43c4a702f67fbcdb2707edac64c 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/User.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java @@ -1,9 +1,10 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.users.models; import java.time.LocalDate; import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.uva.monolith.services.bookings.models.Booking; import jakarta.persistence.Basic; import jakarta.persistence.CascadeType; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/UserRol.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java similarity index 50% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/UserRol.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java index cba769f4362bd1209a1135a8e2624b5b45300c07..0abe595a154a10347b4eb63a818e72a51ea616f9 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/UserRol.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.users.models; public enum UserRol { HOTEL_ADMIN, CONSUMER diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/models/UserStatus.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java similarity index 64% rename from java/roomBooking/src/main/java/com/uva/roomBooking/models/UserStatus.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java index 724f962cbf42b9a1c3206e827dffc885003bc92c..362b8688260d4c13dc4a8eae205411c9d5533d79 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/models/UserStatus.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java @@ -1,4 +1,4 @@ -package com.uva.roomBooking.models; +package com.uva.monolith.services.users.models; public enum UserStatus { NO_BOOKINGS, WITH_ACTIVE_BOOKINGS, WITH_INACTIVE_BOOKINGS; diff --git a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/UserRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java similarity index 66% rename from java/roomBooking/src/main/java/com/uva/roomBooking/repositories/UserRepository.java rename to java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java index 1fdfc1ee514cc8ef00182004f28335ae0a4d9a8d..e5b44c976f095719854aa8070abc843b898036fe 100644 --- a/java/roomBooking/src/main/java/com/uva/roomBooking/repositories/UserRepository.java +++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java @@ -1,10 +1,10 @@ -package com.uva.roomBooking.repositories; +package com.uva.monolith.services.users.repositories; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import com.uva.roomBooking.models.User; +import com.uva.monolith.services.users.models.User; public interface UserRepository extends JpaRepository<User, Integer> { Optional<User> findByEmail(String email);