From f4a1bb266bb966ccf2fa53201faed73ee3cde768 Mon Sep 17 00:00:00 2001
From: hugcubi <hugo.cubino@estudiantes.uva.es>
Date: Sat, 14 Dec 2024 18:45:36 +0100
Subject: [PATCH] =?UTF-8?q?Correcci=C3=B3n=20Monolito,=20tanteo=20de=20boo?=
 =?UTF-8?q?king=20remoto?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../uva/monolith/RoomBookingApplication.java  |   2 +-
 .../uva/monolith/config/SecurityConfig.java   |   6 +-
 .../exceptions/GlobalExceptionHandler.java    |   2 +-
 .../exceptions/HotelNotFoundException.java    |   2 +-
 .../exceptions/InvalidDateRangeException.java |   2 +-
 .../exceptions/InvalidRequestException.java   |   2 +-
 .../filter/JwtAuthenticationFilter.java       |   4 +-
 .../controllers/BookingController.java        |   6 +-
 .../services/bookings/models/Booking.java     |   6 +-
 .../repositories/BookingRepository.java       |   4 +-
 .../bookings/services/BookingService.java     |  16 +--
 .../hotels/controllers/HotelController.java   |  22 ++--
 .../services/hotels/models/Address.java       |   2 +-
 .../services/hotels/models/Hotel.java         |   4 +-
 .../monolith/services/hotels/models/Room.java |   4 +-
 .../services/hotels/models/RoomType.java      |   2 +-
 .../hotels/repositories/HotelRepository.java  |   4 +-
 .../hotels/repositories/RoomRepository.java   |   4 +-
 .../users/controllers/UserController.java     |   8 +-
 .../services/users/models/AuthResponse.java   |   2 +-
 .../services/users/models/Client.java         |   4 +-
 .../services/users/models/HotelManager.java   |   4 +-
 .../monolith/services/users/models/User.java  |   2 +-
 .../services/users/models/UserRol.java        |   2 +-
 .../services/users/models/UserStatus.java     |   2 +-
 .../users/repositories/ClientRepository.java  |   4 +-
 .../repositories/HotelManagerRepository.java  |   4 +-
 .../users/repositories/UserRepository.java    |   4 +-
 .../services/users/services/UserService.java  |  20 ++--
 .../com/uva/authentication/api/UserAPI.java   |   5 +-
 .../interceptor/AuthHttpInterceptor.java      |   4 +-
 .../authentication/models/remote/Booking.java |  49 ---------
 .../authentication/models/remote/Client.java  |  53 ---------
 .../authentication/models/remote/Hotel.java   |  48 --------
 .../models/remote/HotelManager.java           |  32 ------
 .../models/remote/Response.java               |  16 ---
 .../authentication/models/remote/User.java    | 103 +++---------------
 .../authentication/models/remote/UserRol.java |   2 +-
 .../models/remote/UserStatus.java             |   5 -
 .../repositories/ClientRepository.java        |  10 --
 .../repositories/HotelManagerRepository.java  |  10 --
 .../repositories/UserRepository.java          |  10 --
 .../authentication/services/AuthService.java  |   8 +-
 .../com/uva/authentication/utils/JwtUtil.java |   4 +-
 java/services/users/pom.xml                   |   7 ++
 .../java/com/uva/api/apis/BookingAPI.java     |  16 +++
 .../main/java/com/uva/api/models/Booking.java |  12 --
 .../main/java/com/uva/api/models/Client.java  |  36 +++---
 .../main/java/com/uva/api/models/Hotel.java   |   5 -
 .../java/com/uva/api/models/HotelManager.java |  39 +++----
 .../main/java/com/uva/api/models/User.java    |  67 +++---------
 .../com/uva/api/models/remote/Booking.java    |  21 ++++
 .../com/uva/api/services/UserService.java     |  16 ++-
 53 files changed, 205 insertions(+), 523 deletions(-)
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java
 delete mode 100644 java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java
 create mode 100644 java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java
 delete mode 100644 java/services/users/src/main/java/com/uva/api/models/Booking.java
 delete mode 100644 java/services/users/src/main/java/com/uva/api/models/Hotel.java
 create mode 100644 java/services/users/src/main/java/com/uva/api/models/remote/Booking.java

diff --git a/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java b/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java
index 732bfa2..0a5db24 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/RoomBookingApplication.java
@@ -1,4 +1,4 @@
-package com.uva.api;
+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/monolith/config/SecurityConfig.java b/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java
index 914469e..8264f84 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/config/SecurityConfig.java
@@ -1,4 +1,4 @@
-package com.uva.api.config;
+package com.uva.monolith.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -8,8 +8,8 @@ import org.springframework.security.config.annotation.web.configuration.EnableWe
 import org.springframework.security.web.SecurityFilterChain;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 
-import com.uva.api.filter.JwtAuthenticationFilter;
-import com.uva.api.services.users.models.UserRol;
+import com.uva.monolith.filter.JwtAuthenticationFilter;
+import com.uva.monolith.services.users.models.UserRol;
 
 @Configuration
 @EnableWebSecurity
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java
index 5681a60..9428c51 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/GlobalExceptionHandler.java
@@ -1,4 +1,4 @@
-package com.uva.api.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/monolith/exceptions/HotelNotFoundException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java
index dc466f6..129a0b1 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/HotelNotFoundException.java
@@ -1,4 +1,4 @@
-package com.uva.api.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/monolith/exceptions/InvalidDateRangeException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java
index 58bf97d..5fea986 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidDateRangeException.java
@@ -1,4 +1,4 @@
-package com.uva.api.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/monolith/exceptions/InvalidRequestException.java b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java
index 677cc4b..ca09e05 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/exceptions/InvalidRequestException.java
@@ -1,4 +1,4 @@
-package com.uva.api.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/monolith/filter/JwtAuthenticationFilter.java b/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java
index 8833440..c564150 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/filter/JwtAuthenticationFilter.java
@@ -1,4 +1,4 @@
-package com.uva.api.filter;
+package com.uva.monolith.filter;
 
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.JWTVerifier;
@@ -13,7 +13,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
 import org.springframework.stereotype.Component;
 
-import com.uva.api.services.users.models.UserRol;
+import com.uva.monolith.services.users.models.UserRol;
 
 import jakarta.servlet.FilterChain;
 import jakarta.servlet.ServletException;
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java
index b454a36..602f16a 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/controllers/BookingController.java
@@ -1,7 +1,7 @@
-package com.uva.api.services.bookings.controllers;
+package com.uva.monolith.services.bookings.controllers;
 
-import com.uva.api.services.bookings.models.Booking;
-import com.uva.api.services.bookings.services.BookingService;
+import com.uva.monolith.services.bookings.models.Booking;
+import com.uva.monolith.services.bookings.services.BookingService;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java
index a1df84f..533ee0c 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/models/Booking.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.bookings.models;
+package com.uva.monolith.services.bookings.models;
 
 import jakarta.persistence.Basic;
 import jakarta.persistence.CascadeType;
@@ -13,8 +13,8 @@ import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import java.time.LocalDate;
 
-import com.uva.api.services.hotels.models.Room;
-import com.uva.api.services.users.models.Client;
+import com.uva.monolith.services.hotels.models.Room;
+import com.uva.monolith.services.users.models.Client;
 
 @Entity
 @Table(name = "bookings")
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/repositories/BookingRepository.java
index 50af181..b5ace65 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/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.api.services.bookings.repositories;
+package com.uva.monolith.services.bookings.repositories;
 
 import jakarta.transaction.Transactional;
 
@@ -11,7 +11,7 @@ import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 
-import com.uva.api.services.bookings.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.userId.id = ?1")
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java
index 2554413..176f49d 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/bookings/services/BookingService.java
@@ -1,11 +1,11 @@
-package com.uva.api.services.bookings.services;
-
-import com.uva.api.services.bookings.models.Booking;
-import com.uva.api.services.bookings.repositories.BookingRepository;
-import com.uva.api.services.hotels.models.Room;
-import com.uva.api.services.hotels.repositories.RoomRepository;
-import com.uva.api.services.users.models.Client;
-import com.uva.api.services.users.repositories.ClientRepository;
+package com.uva.monolith.services.bookings.services;
+
+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.Client;
+import com.uva.monolith.services.users.repositories.ClientRepository;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java
index 3321df6..781cb62 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/controllers/HotelController.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.hotels.controllers;
+package com.uva.monolith.services.hotels.controllers;
 
 import java.util.List;
 import java.util.Map;
@@ -11,16 +11,16 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import com.uva.api.exceptions.HotelNotFoundException;
-import com.uva.api.exceptions.InvalidDateRangeException;
-import com.uva.api.exceptions.InvalidRequestException;
-import com.uva.api.services.bookings.repositories.BookingRepository;
-import com.uva.api.services.hotels.models.Hotel;
-import com.uva.api.services.hotels.models.Room;
-import com.uva.api.services.hotels.repositories.HotelRepository;
-import com.uva.api.services.hotels.repositories.RoomRepository;
-import com.uva.api.services.users.models.HotelManager;
-import com.uva.api.services.users.repositories.HotelManagerRepository;
+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;
+import com.uva.monolith.services.users.models.HotelManager;
+import com.uva.monolith.services.users.repositories.HotelManagerRepository;
 
 @RestController
 @RequestMapping("hotels")
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java
index 61fbf60..5f31a2a 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Address.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.hotels.models;
+package com.uva.monolith.services.hotels.models;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java
index 71e9c04..21f5cec 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Hotel.java
@@ -1,8 +1,8 @@
-package com.uva.api.services.hotels.models;
+package com.uva.monolith.services.hotels.models;
 
 import java.util.List;
 
-import com.uva.api.services.users.models.HotelManager;
+import com.uva.monolith.services.users.models.HotelManager;
 
 import jakarta.persistence.Basic;
 import jakarta.persistence.CascadeType;
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java
index 368e6d7..72a6a72 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/Room.java
@@ -1,9 +1,9 @@
-package com.uva.api.services.hotels.models;
+package com.uva.monolith.services.hotels.models;
 
 import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.uva.api.services.bookings.models.Booking;
+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/monolith/services/hotels/models/RoomType.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java
index 7f85313..b9e8258 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/models/RoomType.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.hotels.models;
+package com.uva.monolith.services.hotels.models;
 
 public enum RoomType {
     SINGLE,
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java
index 320adb8..eddb664 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/HotelRepository.java
@@ -1,11 +1,11 @@
-package com.uva.api.services.hotels.repositories;
+package com.uva.monolith.services.hotels.repositories;
 
 import java.util.List;
 
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Query;
 
-import com.uva.api.services.hotels.models.Hotel;
+import com.uva.monolith.services.hotels.models.Hotel;
 
 public interface HotelRepository extends JpaRepository<Hotel, Integer> {
     @Query("SELECT h FROM Hotel h WHERE h.hotelManager.id = ?1")
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java
index 1f2a3fd..15cc3d3 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/hotels/repositories/RoomRepository.java
@@ -1,9 +1,9 @@
-package com.uva.api.services.hotels.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.api.services.hotels.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/monolith/services/users/controllers/UserController.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java
index ab6a975..15fc498 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/controllers/UserController.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.users.controllers;
+package com.uva.monolith.services.users.controllers;
 
 import java.util.List;
 import java.util.Map;
@@ -19,9 +19,9 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.HttpClientErrorException;
 
-import com.uva.api.services.users.models.User;
-import com.uva.api.services.users.models.UserStatus;
-import com.uva.api.services.users.services.UserService;
+import com.uva.monolith.services.users.models.User;
+import com.uva.monolith.services.users.models.UserStatus;
+import com.uva.monolith.services.users.services.UserService;
 
 @RestController
 @RequestMapping("users")
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java
index 9a4564d..8f33481 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/AuthResponse.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.users.models;
+package com.uva.monolith.services.users.models;
 
 public class AuthResponse {
 
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java
index 1814b0b..e106ecd 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/Client.java
@@ -1,11 +1,11 @@
-package com.uva.api.services.users.models;
+package com.uva.monolith.services.users.models;
 
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.uva.api.services.bookings.models.Booking;
+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/monolith/services/users/models/HotelManager.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/HotelManager.java
index e185fa5..0e6f4b0 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/HotelManager.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/HotelManager.java
@@ -1,9 +1,9 @@
-package com.uva.api.services.users.models;
+package com.uva.monolith.services.users.models;
 
 import java.util.ArrayList;
 import java.util.List;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.uva.api.services.hotels.models.Hotel;
+import com.uva.monolith.services.hotels.models.Hotel;
 import jakarta.persistence.CascadeType;
 import jakarta.persistence.Entity;
 import jakarta.persistence.FetchType;
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java
index e6262ce..ecfd33d 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/User.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.users.models;
+package com.uva.monolith.services.users.models;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java
index 0a02cb6..f408ba5 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserRol.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.users.models;
+package com.uva.monolith.services.users.models;
 
 public enum UserRol {
   ADMIN, HOTEL_ADMIN, CLIENT
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java
index 883dc43..362b868 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/models/UserStatus.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.users.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/monolith/services/users/repositories/ClientRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/ClientRepository.java
index 7b56de6..1c1b46f 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/ClientRepository.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/ClientRepository.java
@@ -1,9 +1,9 @@
-package com.uva.api.services.users.repositories;
+package com.uva.monolith.services.users.repositories;
 
 import java.util.Optional;
 import org.springframework.data.jpa.repository.JpaRepository;
 
-import com.uva.api.services.users.models.Client;
+import com.uva.monolith.services.users.models.Client;
 
 public interface ClientRepository extends JpaRepository<Client, Integer> {
   Optional<Client> findByEmail(String email);
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java
index 5a6f077..092a251 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/HotelManagerRepository.java
@@ -1,9 +1,9 @@
-package com.uva.api.services.users.repositories;
+package com.uva.monolith.services.users.repositories;
 
 import java.util.Optional;
 import org.springframework.data.jpa.repository.JpaRepository;
 
-import com.uva.api.services.users.models.HotelManager;
+import com.uva.monolith.services.users.models.HotelManager;
 
 public interface HotelManagerRepository extends JpaRepository<HotelManager, Integer> {
   Optional<HotelManager> findByEmail(String email);
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java
index fa55563..e5b44c9 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/repositories/UserRepository.java
@@ -1,10 +1,10 @@
-package com.uva.api.services.users.repositories;
+package com.uva.monolith.services.users.repositories;
 
 import java.util.Optional;
 
 import org.springframework.data.jpa.repository.JpaRepository;
 
-import com.uva.api.services.users.models.User;
+import com.uva.monolith.services.users.models.User;
 
 public interface UserRepository extends JpaRepository<User, Integer> {
   Optional<User> findByEmail(String email);
diff --git a/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java b/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java
index b81c35c..bdd5b9d 100644
--- a/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java
+++ b/java/roomBooking/src/main/java/com/uva/monolith/services/users/services/UserService.java
@@ -1,4 +1,4 @@
-package com.uva.api.services.users.services;
+package com.uva.monolith.services.users.services;
 
 import java.time.LocalDate;
 import java.util.List;
@@ -10,15 +10,15 @@ import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpClientErrorException;
 
-import com.uva.api.services.users.models.AuthResponse;
-import com.uva.api.services.users.models.Client;
-import com.uva.api.services.users.models.HotelManager;
-import com.uva.api.services.users.models.User;
-import com.uva.api.services.users.models.UserRol;
-import com.uva.api.services.users.models.UserStatus;
-import com.uva.api.services.users.repositories.ClientRepository;
-import com.uva.api.services.users.repositories.HotelManagerRepository;
-import com.uva.api.services.users.repositories.UserRepository;
+import com.uva.monolith.services.users.models.AuthResponse;
+import com.uva.monolith.services.users.models.Client;
+import com.uva.monolith.services.users.models.HotelManager;
+import com.uva.monolith.services.users.models.User;
+import com.uva.monolith.services.users.models.UserRol;
+import com.uva.monolith.services.users.models.UserStatus;
+import com.uva.monolith.services.users.repositories.ClientRepository;
+import com.uva.monolith.services.users.repositories.HotelManagerRepository;
+import com.uva.monolith.services.users.repositories.UserRepository;
 
 @Service
 public class UserService {
diff --git a/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java b/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java
index 2714036..4955ba4 100644
--- a/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java
+++ b/java/services/auth/src/main/java/com/uva/authentication/api/UserAPI.java
@@ -9,7 +9,6 @@ import org.springframework.web.client.HttpClientErrorException;
 import org.springframework.web.client.RestTemplate;
 
 import com.uva.authentication.models.RegisterRequest;
-import com.uva.authentication.models.remote.Response;
 import com.uva.authentication.models.remote.User;
 
 @Component
@@ -39,11 +38,11 @@ public class UserAPI {
    * @return User or null if not exists
    * @throws HttpClientErrorException
    */
-  public Response getUserByEmail(String email) {
+  public User getUserByEmail(String email) {
     String url = USER_API_URL + "?email={email}";
     System.err.println(url);
     try {
-      ResponseEntity<Response> userResponse = restTemplate.getForEntity(url, Response.class, email);
+      ResponseEntity<User> userResponse = restTemplate.getForEntity(url, User.class, email);
       return userResponse.getBody();
     } catch (HttpClientErrorException e) {
       if (e.getStatusCode() != HttpStatus.NOT_FOUND)
diff --git a/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java b/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java
index 094cb5a..b64a0f6 100644
--- a/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java
+++ b/java/services/auth/src/main/java/com/uva/authentication/interceptor/AuthHttpInterceptor.java
@@ -7,7 +7,7 @@ import org.springframework.http.client.ClientHttpResponse;
 import org.springframework.http.client.ClientHttpRequestInterceptor;
 import org.springframework.stereotype.Component;
 
-import com.uva.authentication.models.remote.Response;
+import com.uva.authentication.models.remote.User;
 import com.uva.authentication.models.remote.UserRol;
 import com.uva.authentication.utils.JwtUtil;
 
@@ -20,7 +20,7 @@ public class AuthHttpInterceptor implements ClientHttpRequestInterceptor {
   private JwtUtil jwtUtil;
 
   private String token;
-  private final Response USER = new Response(-1, "auth", "auth@dev.com", null, UserRol.ADMIN);
+  private final User USER = new User(-1, "auth", "auth@dev.com", null, UserRol.ADMIN);
 
   private String getAccessToken() {
     if (token == null || token.isEmpty()) {
diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java
deleted file mode 100644
index 354c65d..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Booking.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.uva.authentication.models.remote;
-
-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.ManyToOne;
-import jakarta.persistence.Table;
-
-@Entity
-@Table(name = "bookings")
-public class Booking {
-    @Id
-    @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 Client userId;
-
-    public Booking() {
-    }
-
-    public Booking(int id, Client userId) {
-        this.id = id;
-        this.userId = userId;
-    }
-
-    public void setId(int id) {
-        this.id = id;
-    }
-
-    public int getId() {
-        return this.id;
-    }
-
-    public void setUserId(Client userId) {
-        this.userId = userId;
-    }
-
-    public Client getUserId() {
-        return this.userId;
-    }
-
-}
diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java
deleted file mode 100644
index 5ebf50a..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Client.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.uva.authentication.models.remote;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import jakarta.persistence.Basic;
-import jakarta.persistence.CascadeType;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.EnumType;
-import jakarta.persistence.Enumerated;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.OneToMany;
-import jakarta.persistence.Table;
-
-@Entity
-@Table(name = "user_client")
-public class Client extends User {
-
-  @Basic(optional = false)
-  @Column(nullable = false)
-  @Enumerated(EnumType.STRING)
-  private UserStatus status = UserStatus.NO_BOOKINGS;
-
-  @OneToMany(mappedBy = "userId", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
-  private List<Booking> bookings = new ArrayList<>();
-
-  public Client() {
-    super();
-  }
-
-  public Client(int id, String name, String email, String password, UserStatus status, List<Booking> bookings) {
-    super(id, name, email, password, UserRol.CLIENT);
-    setStatus(status);
-    setBookings(bookings);
-  }
-
-  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/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java
deleted file mode 100644
index 5710f9d..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Hotel.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.uva.authentication.models.remote;
-
-import jakarta.persistence.Basic;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
-import jakarta.persistence.Table;
-
-@Entity
-@Table(name = "hotels")
-public class Hotel {
-
-  @Id
-  @GeneratedValue(strategy = GenerationType.IDENTITY)
-  @Basic(optional = false)
-  private int id;
-
-  @ManyToOne(optional = false)
-  @JoinColumn(name = "hotel_manager", referencedColumnName = "id")
-  private HotelManager hotelManager;
-
-  public Hotel() {
-  }
-
-  public Hotel(int id, HotelManager hotelManager) {
-    setId(id);
-    setHotelManager(hotelManager);
-  }
-
-  public int getId() {
-    return this.id;
-  }
-
-  public void setId(int id) {
-    this.id = id;
-  }
-
-  public void setHotelManager(HotelManager hotelManager) {
-    this.hotelManager = hotelManager;
-  }
-
-  public HotelManager getHotelManager() {
-    return hotelManager;
-  }
-}
diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java
deleted file mode 100644
index dd58a50..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/HotelManager.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package com.uva.authentication.models.remote;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import jakarta.persistence.CascadeType;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.OneToMany;
-import jakarta.persistence.Table;
-
-@Entity
-@Table(name = "hotel_manager_user")
-public class HotelManager extends User {
-
-  @OneToMany(mappedBy = "hotelManager", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
-  private List<Hotel> hotels = new ArrayList<>();
-
-  public HotelManager() {
-    super();
-  }
-
-  public HotelManager(int id, String name, String email, String password, List<Hotel> hotels) {
-    super(id, name, email, password, UserRol.HOTEL_ADMIN);
-    setHotels(hotels);
-  }
-
-  public void setHotels(List<Hotel> hotels) {
-    this.hotels = hotels;
-  }
-
-}
diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java
deleted file mode 100644
index 566a210..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/Response.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.uva.authentication.models.remote;
-
-import com.uva.authentication.models.RegisterRequest;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-
-@Data
-@ToString(callSuper = true)
-@EqualsAndHashCode(callSuper = true)
-@NoArgsConstructor
-public class Response extends RegisterRequest {
-  private int id;
-}
diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java
index a72ecfa..ae8de36 100644
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java
+++ b/java/services/auth/src/main/java/com/uva/authentication/models/remote/User.java
@@ -1,95 +1,24 @@
 package com.uva.authentication.models.remote;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
-
-import jakarta.persistence.Basic;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.EnumType;
-import jakarta.persistence.Enumerated;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
-import jakarta.persistence.Inheritance;
-import jakarta.persistence.InheritanceType;
-import jakarta.persistence.Table;
-
-@Entity
-@Inheritance(strategy = InheritanceType.JOINED)
-@Table(name = "users")
-public class User {
-
-  @Id
-  @GeneratedValue(strategy = GenerationType.IDENTITY)
-  @Basic(optional = false)
-  @Column(nullable = false)
+import com.uva.authentication.models.RegisterRequest;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
+public class User extends RegisterRequest {
   private int id;
 
-  @Basic(optional = false)
-  @Column(nullable = false)
-  private String name;
-
-  @Basic(optional = false)
-  @Column(nullable = false, unique = true)
-  private String email;
-
-  @JsonIgnore
-  @Basic(optional = false)
-  @Column(nullable = false)
-  private String password;
-
-  @Basic(optional = false)
-  @Column(nullable = false)
-  @Enumerated(EnumType.STRING)
-  private UserRol rol = UserRol.CLIENT;
-
-  public User() {
-  }
-
-  public User(int id, String name, String email, String password, UserRol rol) {
-    setId(id);
-    setName(name);
+  public User(int id, String email, String password, String name, UserRol rol) {
+    super();
     setEmail(email);
+    setName(name);
+    setPassword(password);
     setRol(rol);
   }
-
-  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 String getPassword() {
-    return password;
-  }
-
-  public void setPassword(String rawPassword) {
-    this.password = rawPassword;
-  }
-
-  public UserRol getRol() {
-    return this.rol;
-  }
-
-  public void setRol(UserRol rol) {
-    this.rol = rol;
-  }
 }
diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java
index fe4d90d..b03ee5f 100644
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java
+++ b/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserRol.java
@@ -1,5 +1,5 @@
 package com.uva.authentication.models.remote;
 
 public enum UserRol {
-  ADMIN, HOTEL_ADMIN, CLIENT
+  ADMIN, AUTH
 }
diff --git a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java b/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java
deleted file mode 100644
index 5dd62bc..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/models/remote/UserStatus.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.uva.authentication.models.remote;
-
-public enum UserStatus {
-  NO_BOOKINGS, WITH_ACTIVE_BOOKINGS, WITH_INACTIVE_BOOKINGS;
-}
diff --git a/java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java b/java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java
deleted file mode 100644
index 6d2b8ee..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/repositories/ClientRepository.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.uva.authentication.repositories;
-
-import java.util.Optional;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import com.uva.authentication.models.remote.Client;
-
-public interface ClientRepository extends JpaRepository<Client, Integer> {
-  Optional<Client> findByEmail(String email);
-}
\ No newline at end of file
diff --git a/java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java b/java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java
deleted file mode 100644
index c051ddd..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/repositories/HotelManagerRepository.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.uva.authentication.repositories;
-
-import java.util.Optional;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import com.uva.authentication.models.remote.HotelManager;
-
-public interface HotelManagerRepository extends JpaRepository<HotelManager, Integer> {
-  Optional<HotelManager> findByEmail(String email);
-}
\ No newline at end of file
diff --git a/java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java b/java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java
deleted file mode 100644
index 65f98ed..0000000
--- a/java/services/auth/src/main/java/com/uva/authentication/repositories/UserRepository.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.uva.authentication.repositories;
-
-import java.util.Optional;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import com.uva.authentication.models.remote.User;
-
-public interface UserRepository extends JpaRepository<User, Integer> {
-  Optional<User> findByEmail(String email);
-}
\ No newline at end of file
diff --git a/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java b/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java
index bccba7f..37b16ff 100644
--- a/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java
+++ b/java/services/auth/src/main/java/com/uva/authentication/services/AuthService.java
@@ -9,7 +9,6 @@ import org.springframework.web.client.HttpClientErrorException;
 import com.uva.authentication.api.UserAPI;
 import com.uva.authentication.models.LoginRequest;
 import com.uva.authentication.models.RegisterRequest;
-import com.uva.authentication.models.remote.Response;
 import com.uva.authentication.models.remote.User;
 import com.uva.authentication.utils.JwtUtil;
 import com.uva.authentication.utils.SecurityUtils;
@@ -23,8 +22,7 @@ public class AuthService {
   @Autowired
   private UserAPI userAPI;
 
-  private boolean authenticateUser(LoginRequest request, Response user) {
-    System.err.println(user.getPassword() + " " + request.getPassword());
+  private boolean authenticateUser(LoginRequest request, User user) {
     return (user != null)
         ? SecurityUtils.checkPassword(request.getPassword(), user.getPassword())
         : false;
@@ -38,9 +36,7 @@ public class AuthService {
    * @throws HttpClientErrorException(FORBIDDEN) if the credentials are invalid
    */
   public String login(LoginRequest loginRequest) {
-    Response user = userAPI.getUserByEmail(loginRequest.getEmail());
-    System.err.println(user.getName() + ", " + user.getEmail() + ", " +
-        user.getRol() + ", " + user.getPassword());
+    User user = userAPI.getUserByEmail(loginRequest.getEmail());
 
     if (!authenticateUser(loginRequest, user)) {
       throw new HttpClientErrorException(HttpStatus.FORBIDDEN, "Invalid credentials");
diff --git a/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java b/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java
index 76cda7e..7b5bbf5 100644
--- a/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java
+++ b/java/services/auth/src/main/java/com/uva/authentication/utils/JwtUtil.java
@@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
 
 import com.auth0.jwt.JWT;
 import com.auth0.jwt.algorithms.Algorithm;
-import com.uva.authentication.models.remote.Response;
+import com.uva.authentication.models.remote.User;
 
 @Component
 public class JwtUtil {
@@ -25,7 +25,7 @@ public class JwtUtil {
     return jwtExpiration;
   }
 
-  public String generateToken(Response user) {
+  public String generateToken(User user) {
     Algorithm algorithm = Algorithm.HMAC256(secretKey);
     return JWT
         .create()
diff --git a/java/services/users/pom.xml b/java/services/users/pom.xml
index 7ee0d6a..ebc7f26 100644
--- a/java/services/users/pom.xml
+++ b/java/services/users/pom.xml
@@ -63,6 +63,13 @@
 		<artifactId>jakarta.servlet-api</artifactId>
 		<scope>provided</scope>
     </dependency>
+		<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+			<version>1.18.36</version>
+			<scope>provided</scope>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java b/java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java
new file mode 100644
index 0000000..f4886cd
--- /dev/null
+++ b/java/services/users/src/main/java/com/uva/api/apis/BookingAPI.java
@@ -0,0 +1,16 @@
+package com.uva.api.apis;
+
+import java.util.List;
+
+import org.springframework.stereotype.Component;
+
+import com.uva.api.models.remote.Booking;
+
+@Component
+public class BookingAPI {
+
+  public List<Booking> getAllBookingsByUserId(int id) {
+    return null;
+  }
+
+}
diff --git a/java/services/users/src/main/java/com/uva/api/models/Booking.java b/java/services/users/src/main/java/com/uva/api/models/Booking.java
deleted file mode 100644
index 88367c6..0000000
--- a/java/services/users/src/main/java/com/uva/api/models/Booking.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.uva.api.models;
-
-import java.time.LocalDate;
-
-public class Booking {
-
-  public LocalDate getEndDate() {
-    // TODO Auto-generated method stub
-    throw new UnsupportedOperationException("Unimplemented method 'getEndDate'");
-  }
-
-}
diff --git a/java/services/users/src/main/java/com/uva/api/models/Client.java b/java/services/users/src/main/java/com/uva/api/models/Client.java
index 238e23d..d5f695e 100644
--- a/java/services/users/src/main/java/com/uva/api/models/Client.java
+++ b/java/services/users/src/main/java/com/uva/api/models/Client.java
@@ -1,40 +1,40 @@
 package com.uva.api.models;
 
 import java.time.LocalDate;
-import java.util.ArrayList;
 import java.util.List;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.uva.api.models.remote.Booking;
 
 import jakarta.persistence.Basic;
-import jakarta.persistence.CascadeType;
 import jakarta.persistence.Column;
 import jakarta.persistence.Entity;
 import jakarta.persistence.EnumType;
 import jakarta.persistence.Enumerated;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.OneToMany;
 import jakarta.persistence.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
 
 @Entity
 @Table(name = "user_client")
+@NoArgsConstructor
+@Getter
+@Setter
+@Data
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
 public class Client extends User {
 
   @Basic(optional = false)
   @Column(nullable = false)
   @Enumerated(EnumType.STRING)
-  private UserStatus status;
+  private UserStatus status = UserStatus.NO_BOOKINGS;
 
-  @JsonIgnore
-  @OneToMany(mappedBy = "userId", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
   private List<Booking> bookings;
 
-  public Client() {
-    super();
-    bookings = new ArrayList<>();
-    status = UserStatus.NO_BOOKINGS;
-  }
-
   public Client(int id, String name, String email, String password, UserStatus status,
       List<Booking> bookings) {
     super(id, name, email, password, UserRol.CLIENT);
@@ -53,12 +53,4 @@ public class Client extends User {
   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/users/src/main/java/com/uva/api/models/Hotel.java b/java/services/users/src/main/java/com/uva/api/models/Hotel.java
deleted file mode 100644
index 29adbbe..0000000
--- a/java/services/users/src/main/java/com/uva/api/models/Hotel.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.uva.api.models;
-
-public class Hotel {
-
-}
diff --git a/java/services/users/src/main/java/com/uva/api/models/HotelManager.java b/java/services/users/src/main/java/com/uva/api/models/HotelManager.java
index 46570f3..a4fdb51 100644
--- a/java/services/users/src/main/java/com/uva/api/models/HotelManager.java
+++ b/java/services/users/src/main/java/com/uva/api/models/HotelManager.java
@@ -1,37 +1,30 @@
 package com.uva.api.models;
 
-import java.util.ArrayList;
-import java.util.List;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import jakarta.persistence.CascadeType;
+import com.fasterxml.jackson.databind.JsonNode;
+
 import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.OneToMany;
 import jakarta.persistence.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
 
 @Entity
 @Table(name = "hotel_manager_user")
+@NoArgsConstructor
+@Getter
+@Setter
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
 public class HotelManager extends User {
 
-  @JsonIgnore
-  @OneToMany(mappedBy = "hotelManager", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
-  private List<Hotel> hotels;
-
-  public HotelManager() {
-    super();
-    hotels = new ArrayList<>();
-  }
+  private JsonNode hotels;
 
-  public HotelManager(int id, String name, String email, String password, List<Hotel> hotels) {
+  public HotelManager(int id, String name, String email, String password, JsonNode hotels) {
     super(id, name, email, password, UserRol.HOTEL_ADMIN);
     setHotels(hotels);
   }
-
-  public List<Hotel> getHotels() {
-    return this.hotels;
-  }
-
-  public void setHotels(List<Hotel> hotels) {
-    this.hotels = hotels;
-  }
 }
diff --git a/java/services/users/src/main/java/com/uva/api/models/User.java b/java/services/users/src/main/java/com/uva/api/models/User.java
index bdcb1b5..401f505 100644
--- a/java/services/users/src/main/java/com/uva/api/models/User.java
+++ b/java/services/users/src/main/java/com/uva/api/models/User.java
@@ -13,10 +13,24 @@ import jakarta.persistence.Id;
 import jakarta.persistence.Inheritance;
 import jakarta.persistence.InheritanceType;
 import jakarta.persistence.Table;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
 
 @Entity
 @Inheritance(strategy = InheritanceType.JOINED)
 @Table(name = "users")
+@NoArgsConstructor
+@AllArgsConstructor
+@Setter
+@Getter
+@Data
+@EqualsAndHashCode
+@ToString
 public class User {
 
   @Id
@@ -33,6 +47,7 @@ public class User {
   @Column(nullable = false, unique = true)
   private String email;
 
+  @JsonIgnore
   @Basic(optional = false)
   @Column(nullable = false)
   private String password;
@@ -41,54 +56,4 @@ public class User {
   @Column(nullable = false)
   @Enumerated(EnumType.STRING)
   private UserRol rol = UserRol.CLIENT;
-
-  public User() {
-  }
-
-  public User(int id, String name, String email, String password, UserRol rol) {
-    setId(id);
-    setName(name);
-    setEmail(email);
-    setRol(rol);
-  }
-
-  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 String getPassword() {
-    return password;
-  }
-
-  public void setPassword(String rawPassword) {
-    this.password = rawPassword;
-  }
-
-  public UserRol getRol() {
-    return this.rol;
-  }
-
-  public void setRol(UserRol rol) {
-    this.rol = rol;
-  }
-}
+}
\ No newline at end of file
diff --git a/java/services/users/src/main/java/com/uva/api/models/remote/Booking.java b/java/services/users/src/main/java/com/uva/api/models/remote/Booking.java
new file mode 100644
index 0000000..edb2b06
--- /dev/null
+++ b/java/services/users/src/main/java/com/uva/api/models/remote/Booking.java
@@ -0,0 +1,21 @@
+package com.uva.api.models.remote;
+
+import java.time.LocalDate;
+
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+@EqualsAndHashCode
+public class Booking {
+  private LocalDate startDate;
+  private LocalDate endDate;
+}
diff --git a/java/services/users/src/main/java/com/uva/api/services/UserService.java b/java/services/users/src/main/java/com/uva/api/services/UserService.java
index 820880f..31d0305 100644
--- a/java/services/users/src/main/java/com/uva/api/services/UserService.java
+++ b/java/services/users/src/main/java/com/uva/api/services/UserService.java
@@ -10,12 +10,14 @@ import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.HttpClientErrorException;
 
+import com.uva.api.apis.BookingAPI;
 import com.uva.api.models.AuthResponse;
 import com.uva.api.models.Client;
 import com.uva.api.models.HotelManager;
 import com.uva.api.models.User;
 import com.uva.api.models.UserRol;
 import com.uva.api.models.UserStatus;
+import com.uva.api.models.remote.Booking;
 import com.uva.api.repositories.ClientRepository;
 import com.uva.api.repositories.HotelManagerRepository;
 import com.uva.api.repositories.UserRepository;
@@ -32,6 +34,9 @@ public class UserService {
   @Autowired
   private HotelManagerRepository hotelManagerRepository;
 
+  @Autowired
+  private BookingAPI bookingAPI;
+
   public List<User> getAllUsers() {
     return userRepository.findAll();
   }
@@ -44,6 +49,15 @@ public class UserService {
     return assertUser(userRepository.findById(id));
   }
 
+  public Client getClientById(int id) {
+    User user = assertUser(clientRepository.findById(id));
+    Client client = new Client();
+    BeanUtils.copyProperties(user, client);
+    List<Booking> bookings = bookingAPI.getAllBookingsByUserId(user.getId());
+    client.setBookings(bookings);
+    return client;
+  }
+
   public AuthResponse getUserByEmail(String email) {
     User u = assertUser(userRepository.findByEmail(email));
     AuthResponse auth = new AuthResponse();
@@ -68,7 +82,7 @@ public class UserService {
       case ADMIN:
         User admin = new User();
         BeanUtils.copyProperties(registerRequest, admin);
-        newUser = admin; // userAPI.save(admin);
+        newUser = userRepository.save(admin);
         break;
 
       case CLIENT: // Por defecto cliente normal
-- 
GitLab