diff --git a/java/services/bookings/pom.xml b/java/services/bookings/pom.xml
index 476f735b695a459292a258d72d89261c89dca993..957ab2baae5bc9cd55fd13fa4610617dcf4153a0 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 0000000000000000000000000000000000000000..66b49481d04a156fb1a4ab509612ca3a7a601234
--- /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 03b21e27ffa7e4e921cc9801187911d9f1be6a52..8a9f4447dd4c4a94fbc32379ced1c86e8bd75e8c 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 3d47f5efad71b6fbf3b3f5912493c9c0af1ca412..b0f7409bd4ea5bf89816d979c1643dccbe2dea47 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 17a8420453ef402411b61b965d001560a4dd51ce..adca056e50cc8a5a27e06510b4eefe0ebcfb3207 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 a8433b6f620da742dab87dae96a2e0f0193709ff..76432c4e307148cb13288a969cf755606e76428b 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 c546d1916b1c29a10f95c97f03db34e64ffbe7d2..269daf37234145f3d248ff0782e3b99c0b138168 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 16c860a30fd168d4e03018ef02466dcd5adb7f99..8459911ba59cbf0095b2a7406c0022004f17cd9f 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 1a5f312d49b2d1db4ffe587e4ae02c35e1e9a506..ae4765caf5111f18fdbceafd5a66272e8aafd775 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 0000000000000000000000000000000000000000..9891319840494a78fb1f0c8c67a1001461d4467b
--- /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 5baa50358b36dfffd3184fd0e7e46a9177b2ef55..0000000000000000000000000000000000000000
--- 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 803edc35fdcbf2b5ec7fc96972e8ee2a7777391d..0000000000000000000000000000000000000000
--- 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 a0e6397b9cabc191f7d5d24ecde162e8da6b2f14..0000000000000000000000000000000000000000
--- 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 5e51f55e710c68ac38d4cb1c5769e574b06654bf..0000000000000000000000000000000000000000
--- 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 5a23005de99c022b5fff9570e2c515fcfc75e07e..0000000000000000000000000000000000000000
--- 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 639dfdb0bd3be629b16c719373fa51c9a7584898..0000000000000000000000000000000000000000
--- 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 e1a48b53450e1f87ae070b1bf70bd6a9afc1ea34..0000000000000000000000000000000000000000
--- 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 c5373df6edc5e936d9c94f794ae36d3289d173d5..0000000000000000000000000000000000000000
--- 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 41adce4ba6df6332286f0971b7f8e43b9126e401..0000000000000000000000000000000000000000
--- 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 290f129a7be376279300062d4bf3d7a614abefcc..0000000000000000000000000000000000000000
--- 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 3df9937f1ba7dc7c8bc0aa839a7a93ffd0baa8de..0000000000000000000000000000000000000000
--- 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 5f02f6d4a3b2147d181b8db36736d85ccfd884b5..0000000000000000000000000000000000000000
--- 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
Binary files /dev/null and b/java/services/bookings/target/classes/com/uva/bookings/Controllers/BookingController.class differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/GlobalExceptionHandler.class and b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/GlobalExceptionHandler.class differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/HotelNotFoundException.class and b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/HotelNotFoundException.class differ
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
Binary files /dev/null and b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/InvalidDateRangeException.class differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/InvalidRequestException.class and b/java/services/bookings/target/classes/com/uva/bookings/Exceptions/InvalidRequestException.class differ
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
Binary files /dev/null and b/java/services/bookings/target/classes/com/uva/bookings/Models/Booking.class differ
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
Binary files /dev/null and b/java/services/bookings/target/classes/com/uva/bookings/Repositories/BookingRepository.class differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/RoomBookingApplication.class and b/java/services/bookings/target/classes/com/uva/bookings/bookingServiceApplication.class differ
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
Binary files /dev/null and b/java/services/bookings/target/classes/com/uva/bookings/config/RestTemplateConfig.class differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/BookingController.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/HotelController.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Controllers/UserController.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Exceptions/InvalidDateRangeException.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Address.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Booking.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Hotel.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Room.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Models/Tipo.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Models/User.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Models/UserStatus.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/BookingRepository.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/HotelRepository.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/RoomRepository.class and /dev/null differ
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
Binary files a/java/services/bookings/target/classes/com/uva/roomBooking/Repositories/UserRepository.class and /dev/null differ