Index: src/main/java/com/example/rezevirajmasa/demo/dto/ReservationDTO.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/dto/ReservationDTO.java	(revision deea3c4a0005ebc66d196fb9a5747758d15a025c)
+++ src/main/java/com/example/rezevirajmasa/demo/dto/ReservationDTO.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -6,4 +6,5 @@
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 public class ReservationDTO {
@@ -19,9 +20,11 @@
     private String specialRequests;
     private String paymentStatus;
+    private List<String> preOrderedItems;
+
 
     public ReservationDTO() {
     }
 
-    public ReservationDTO(Long reservationID, String userEmail, BigDecimal rating, Long tableNumber, LocalDateTime reservationDateTime, LocalDateTime checkInTime, Restaurant restaurant, int partySize, String status, String specialRequests, String paymentStatus) {
+    public ReservationDTO(Long reservationID, String userEmail, BigDecimal rating, Long tableNumber, LocalDateTime reservationDateTime, LocalDateTime checkInTime, Restaurant restaurant, int partySize, String status, String specialRequests, String paymentStatus, List<String> preOrderedItems) {
         this.reservationID = reservationID;
         this.userEmail = userEmail;
@@ -35,4 +38,5 @@
         this.specialRequests = specialRequests;
         this.paymentStatus = paymentStatus;
+        this.preOrderedItems = preOrderedItems;
     }
 
@@ -49,4 +53,13 @@
         this.specialRequests = reservation.getSpecialRequests();
         this.paymentStatus = reservation.getPaymentStatus();
+        this.preOrderedItems = reservation.getPreOrderedItems();
+    }
+
+    public List<String> getPreOrderedItems() {
+        return preOrderedItems;
+    }
+
+    public void setPreOrderedItems(List<String> preOrderedItems) {
+        this.preOrderedItems = preOrderedItems;
     }
 
Index: src/main/java/com/example/rezevirajmasa/demo/model/Menu.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/model/Menu.java	(revision deea3c4a0005ebc66d196fb9a5747758d15a025c)
+++ src/main/java/com/example/rezevirajmasa/demo/model/Menu.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -1,5 +1,7 @@
 package com.example.rezevirajmasa.demo.model;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import jakarta.persistence.*;
+import lombok.Data;
 
 import java.math.BigDecimal;
@@ -7,4 +9,5 @@
 @Entity
 @Table(name = "menus")
+@Data
 public class Menu {
     @Id
@@ -15,4 +18,5 @@
     @ManyToOne
     @JoinColumn(name = "RestaurantID", nullable = false)
+    @JsonIgnore
     private Restaurant restaurant;
 
Index: src/main/java/com/example/rezevirajmasa/demo/model/Reservation.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/model/Reservation.java	(revision deea3c4a0005ebc66d196fb9a5747758d15a025c)
+++ src/main/java/com/example/rezevirajmasa/demo/model/Reservation.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -4,11 +4,17 @@
 import com.fasterxml.jackson.annotation.JsonManagedReference;
 import jakarta.persistence.*;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.ArrayList;
+import java.util.List;
 
 @Entity
 @Table(name = "reservations")
+@Data
 public class Reservation {
 
@@ -47,9 +53,12 @@
     private LocalDateTime checkInTime;
 
+    @Getter
     @Column(name = "CheckOutTime")
     private LocalDateTime checkOutTime;
 
-//    @Column(name = "TotalAmount", precision = 8, scale = 2)
-//    private BigDecimal totalAmount;
+    @ElementCollection
+    @CollectionTable(name = "reservation_preordered_items", joinColumns = @JoinColumn(name = "reservation_id"))
+    @Column(name = "item")
+    private List<String> preOrderedItems = new ArrayList<>();
 
     @Column(name = "PaymentStatus", length = 20, nullable = false, columnDefinition = "VARCHAR default 'Unpaid'")
@@ -71,5 +80,4 @@
 
     public Reservation(User user, TableEntity table, Restaurant restaurant, LocalDateTime reservationDateTime, int partySize, String specialRequests, String status, LocalDateTime checkInTime, LocalDateTime checkOutTime, String paymentStatus) {
-//        this.customer = customer;
         this.table = table;
         this.user = user;
@@ -84,92 +92,4 @@
     }
 
-    public User getUser() {
-        return user;
-    }
-
-    public void setUser(User user) {
-        this.user = user;
-    }
-
-    public Long getReservationID() {
-        return reservationID;
-    }
-
-    public void setReservationID(Long reservationID) {
-        this.reservationID = reservationID;
-    }
-
-
-    public TableEntity getTable() {
-        return table;
-    }
-
-    public void setTable(TableEntity table) {
-        this.table = table;
-    }
-
-    public Restaurant getRestaurant() {
-        return restaurant;
-    }
-
-    public void setRestaurant(Restaurant restaurant) {
-        this.restaurant = restaurant;
-    }
-
-    public LocalDateTime getReservationDateTime() {
-        return reservationDateTime;
-    }
-
-    public void setReservationDateTime(LocalDateTime reservationDateTime) {
-        this.reservationDateTime = reservationDateTime;
-    }
-
-    public int getPartySize() {
-        return partySize;
-    }
-
-    public void setPartySize(int partySize) {
-        this.partySize = partySize;
-    }
-
-    public String getSpecialRequests() {
-        return specialRequests;
-    }
-
-    public void setSpecialRequests(String specialRequests) {
-        this.specialRequests = specialRequests;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public LocalDateTime getCheckInTime() {
-        return checkInTime;
-    }
-
-    public void setCheckInTime(LocalDateTime checkInTime) {
-        this.checkInTime = checkInTime;
-    }
-
-    public LocalDateTime getCheckOutTime() {
-        return checkOutTime;
-    }
-
-    public void setCheckOutTime(LocalDateTime checkOutTime) {
-        this.checkOutTime = checkOutTime;
-    }
-
-    public String getPaymentStatus() {
-        return paymentStatus;
-    }
-
-    public void setPaymentStatus(String paymentStatus) {
-        this.paymentStatus = paymentStatus;
-    }
 
     @Override
Index: src/main/java/com/example/rezevirajmasa/demo/repository/MenuRepository.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/repository/MenuRepository.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
+++ src/main/java/com/example/rezevirajmasa/demo/repository/MenuRepository.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -0,0 +1,11 @@
+package com.example.rezevirajmasa.demo.repository;
+
+import com.example.rezevirajmasa.demo.model.Menu;
+import com.example.rezevirajmasa.demo.model.Restaurant;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+public interface MenuRepository extends JpaRepository<Menu, Long> {
+    List<Menu> findAllByRestaurant(Restaurant restaurant);
+}
Index: src/main/java/com/example/rezevirajmasa/demo/service/MenuService.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/service/MenuService.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
+++ src/main/java/com/example/rezevirajmasa/demo/service/MenuService.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -0,0 +1,9 @@
+package com.example.rezevirajmasa.demo.service;
+
+import com.example.rezevirajmasa.demo.model.Menu;
+
+import java.util.List;
+
+public interface MenuService {
+    public List<Menu> getMenuByRestaurantId(Long restaurantId);
+}
Index: src/main/java/com/example/rezevirajmasa/demo/service/impl/MenuServiceImpl.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/service/impl/MenuServiceImpl.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
+++ src/main/java/com/example/rezevirajmasa/demo/service/impl/MenuServiceImpl.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -0,0 +1,27 @@
+package com.example.rezevirajmasa.demo.service.impl;
+
+import com.example.rezevirajmasa.demo.model.Menu;
+import com.example.rezevirajmasa.demo.model.Restaurant;
+import com.example.rezevirajmasa.demo.repository.MenuRepository;
+import com.example.rezevirajmasa.demo.service.MenuService;
+import com.example.rezevirajmasa.demo.service.RestaurantService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class MenuServiceImpl implements MenuService {
+    private final MenuRepository menuRepository;
+    private final RestaurantService restaurantService;
+
+    public MenuServiceImpl(MenuRepository menuRepository, RestaurantService restaurantService) {
+        this.menuRepository = menuRepository;
+        this.restaurantService = restaurantService;
+    }
+
+    @Override
+    public List<Menu> getMenuByRestaurantId(Long restaurantId) {
+        Restaurant restaurant = restaurantService.findByIdRestaurant(restaurantId);
+        return menuRepository.findAllByRestaurant(restaurant);
+    }
+}
Index: src/main/java/com/example/rezevirajmasa/demo/service/impl/ReservationImpl.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/service/impl/ReservationImpl.java	(revision deea3c4a0005ebc66d196fb9a5747758d15a025c)
+++ src/main/java/com/example/rezevirajmasa/demo/service/impl/ReservationImpl.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -63,7 +63,6 @@
             TableEntity table = optionalTable.get();
 
-            LocalDateTime reservationTime = reservationDTO.getReservationDateTime();
-            LocalDateTime startTime = reservationTime.minusHours(2);
-            LocalDateTime endTime = reservationTime.plusHours(2);
+            LocalDateTime startTime = reservationDTO.getReservationDateTime().plusHours(1);
+            LocalDateTime endTime = reservationDTO.getReservationDateTime().plusHours(3);
 
             boolean hasConflict = table.getReservations().stream()
@@ -93,8 +92,9 @@
             reservation.setPaymentStatus(reservationDTO.getPaymentStatus() != null ? reservationDTO.getPaymentStatus() : "Unpaid");
             reservation.setUser(user);
+            reservation.setPreOrderedItems(reservationDTO.getPreOrderedItems());
             reservation.setRestaurant(reservationDTO.getRestaurant());
-            reservation.setCheckInTime(reservationTime);
+            reservation.setCheckInTime(reservationDTO.getReservationDateTime().plusHours(1));
             reservation.setReservationDateTime(LocalDateTime.now());
-            reservation.setCheckOutTime(reservationTime.plusHours(2));
+            reservation.setCheckOutTime(reservationDTO.getReservationDateTime().plusHours(3));
             reservation.setRestaurant(reservationDTO.getRestaurant());
 
Index: src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java	(revision deea3c4a0005ebc66d196fb9a5747758d15a025c)
+++ src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java	(revision e15e8d976a275ebb70018ca698e8c0f11b3f09df)
@@ -37,7 +37,8 @@
     private final ReservationHistoryService reservationHistoryService;
     private final TableService tableService;
+    private final MenuService menuService;
     private final UserMapper userMapper;
     private final TokenService tokenService;
-    public testController(RestaurantService restaurantService, CustomerService customerService, UserService userService, ReservationService reservationService, ReservationHistoryService reservationHistoryService, TableService tableService, UserMapper userMapper, TokenService tokenService) {
+    public testController(RestaurantService restaurantService, CustomerService customerService, UserService userService, ReservationService reservationService, ReservationHistoryService reservationHistoryService, TableService tableService, MenuService menuService, UserMapper userMapper, TokenService tokenService) {
         this.restaurantService = restaurantService;
         this.customerService = customerService;
@@ -46,4 +47,5 @@
         this.reservationHistoryService = reservationHistoryService;
         this.tableService = tableService;
+        this.menuService = menuService;
         this.userMapper = userMapper;
         this.tokenService = tokenService;
@@ -272,3 +274,9 @@
         return new ResponseEntity<>(reservations, HttpStatus.OK);
     }
+
+    // menu calls
+    @GetMapping("/api/restaurant-menu/{restaurantId}")
+    public List<Menu> getMenuByRestaurantId(@PathVariable Long restaurantId) {
+        return menuService.getMenuByRestaurantId(restaurantId);
+    }
 }
