Index: src/main/java/finki/db/tasty_tabs/entity/FrontStaff.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/entity/FrontStaff.java	(revision 2ca107a182731e0e3b2f35cc65e724b5108da20b)
+++ src/main/java/finki/db/tasty_tabs/entity/FrontStaff.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -28,3 +28,6 @@
     @OneToMany(mappedBy = "frontStaff")
     private List<TabOrder> tabOrders;
+
+    @OneToMany(mappedBy = "frontStaff")
+    private List<ReservationManagedFrontStaff> managedReservations;
 }
Index: src/main/java/finki/db/tasty_tabs/entity/Reservation.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/entity/Reservation.java	(revision 2ca107a182731e0e3b2f35cc65e724b5108da20b)
+++ src/main/java/finki/db/tasty_tabs/entity/Reservation.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -6,4 +6,5 @@
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
@@ -36,3 +37,6 @@
     @JoinColumn(name = "user_id", referencedColumnName = "id", nullable = false)
     private User user;
+
+    @OneToMany(mappedBy = "reservation")
+    private List<ReservationManagedFrontStaff> managedReservations;
 }
Index: src/main/java/finki/db/tasty_tabs/entity/ReservationManagedFrontStaff.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/entity/ReservationManagedFrontStaff.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
+++ src/main/java/finki/db/tasty_tabs/entity/ReservationManagedFrontStaff.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -0,0 +1,29 @@
+package finki.db.tasty_tabs.entity;
+
+import finki.db.tasty_tabs.entity.composite_keys.ReservationManagedFrontStaffId;
+import jakarta.persistence.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Entity
+@Table(name = "reservation_managed_frontstaff")
+@Data
+@NoArgsConstructor
+@IdClass(ReservationManagedFrontStaffId.class)
+public class ReservationManagedFrontStaff {
+
+    @Id
+    @ManyToOne
+    @JoinColumn(name = "reservation_id", referencedColumnName = "id")
+    private Reservation reservation;
+
+    @Id
+    @ManyToOne
+    @JoinColumn(name = "frontstaff_id", referencedColumnName = "employee_id")
+    private FrontStaff frontStaff;
+
+    @Id
+    @ManyToOne
+    @JoinColumn(name = "table_number", referencedColumnName = "table_number")
+    private RestaurantTable restaurantTable;
+}
Index: src/main/java/finki/db/tasty_tabs/entity/RestaurantTable.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/entity/RestaurantTable.java	(revision 2ca107a182731e0e3b2f35cc65e724b5108da20b)
+++ src/main/java/finki/db/tasty_tabs/entity/RestaurantTable.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -26,4 +26,7 @@
     private List<TabOrder> tabOrders;
 
+    @OneToMany(mappedBy = "restaurantTable")
+    private List<ReservationManagedFrontStaff> managedReservations;
+
     public RestaurantTable(Integer tableNumber, Integer seatCapacity) {
         this.tableNumber=tableNumber;
Index: src/main/java/finki/db/tasty_tabs/entity/composite_keys/ReservationManagedFrontStaffId.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/entity/composite_keys/ReservationManagedFrontStaffId.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
+++ src/main/java/finki/db/tasty_tabs/entity/composite_keys/ReservationManagedFrontStaffId.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -0,0 +1,38 @@
+package finki.db.tasty_tabs.entity.composite_keys;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
+import java.io.Serializable;
+import java.util.Objects;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Embeddable
+@Data
+@NoArgsConstructor
+public class ReservationManagedFrontStaffId implements Serializable {
+
+    @Column(name = "reservation_id")
+    private Long reservationId;
+
+    @Column(name = "frontstaff_id")
+    private Long frontstaffId;
+
+    @Column(name = "table_number")
+    private Integer tableNumber;
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        ReservationManagedFrontStaffId that = (ReservationManagedFrontStaffId) o;
+        return Objects.equals(reservationId, that.reservationId) &&
+                Objects.equals(frontstaffId, that.frontstaffId) &&
+                Objects.equals(tableNumber, that.tableNumber);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(reservationId, frontstaffId, tableNumber);
+    }
+}
Index: src/main/java/finki/db/tasty_tabs/repository/ReservationManagedFrontStaffRepository.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/repository/ReservationManagedFrontStaffRepository.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
+++ src/main/java/finki/db/tasty_tabs/repository/ReservationManagedFrontStaffRepository.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -0,0 +1,10 @@
+package finki.db.tasty_tabs.repository;
+
+import finki.db.tasty_tabs.entity.Product;
+import finki.db.tasty_tabs.entity.ReservationManagedFrontStaff;
+import finki.db.tasty_tabs.entity.composite_keys.ReservationManagedFrontStaffId;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ReservationManagedFrontStaffRepository extends JpaRepository<ReservationManagedFrontStaff, ReservationManagedFrontStaffId> { }
Index: src/main/java/finki/db/tasty_tabs/repository/ReservationRepository.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/repository/ReservationRepository.java	(revision 2ca107a182731e0e3b2f35cc65e724b5108da20b)
+++ src/main/java/finki/db/tasty_tabs/repository/ReservationRepository.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -2,5 +2,11 @@
 
 import finki.db.tasty_tabs.entity.Reservation;
+import finki.db.tasty_tabs.entity.User;
 import org.springframework.data.jpa.repository.JpaRepository;
+import java.time.LocalDateTime;
+import java.util.List;
 
-public interface ReservationRepository extends JpaRepository<Reservation, Long> {}
+public interface ReservationRepository extends JpaRepository<Reservation, Long> {
+    List<Reservation> findAllByUser(User user);
+    List<Reservation> findAllByDatetimeBetween(LocalDateTime start, LocalDateTime end);
+}
Index: src/main/java/finki/db/tasty_tabs/service/ReservationService.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/service/ReservationService.java	(revision 2ca107a182731e0e3b2f35cc65e724b5108da20b)
+++ src/main/java/finki/db/tasty_tabs/service/ReservationService.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -2,7 +2,9 @@
 
 import finki.db.tasty_tabs.entity.Reservation;
+import finki.db.tasty_tabs.entity.ReservationManagedFrontStaff;
 import finki.db.tasty_tabs.web.dto.CreateReservationDto;
 import finki.db.tasty_tabs.web.dto.ReservationDto;
 
+import java.time.LocalDate;
 import java.util.List;
 
@@ -13,3 +15,8 @@
     Reservation updateReservation(Long id, CreateReservationDto dto,String userEmail);
     void deleteReservation(Long id);
+    List<Reservation> getAllReservationsByUser(String userEmail);
+    ReservationManagedFrontStaff acceptReservation(Long reservationId, String frontStaffEmail, Integer tableNumber);
+
+    List<Reservation> getAllReservationsForToday();
+    List<Reservation> getAllReservationsForDate(LocalDate date);
 }
Index: src/main/java/finki/db/tasty_tabs/service/impl/ReservationServiceImpl.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/service/impl/ReservationServiceImpl.java	(revision 2ca107a182731e0e3b2f35cc65e724b5108da20b)
+++ src/main/java/finki/db/tasty_tabs/service/impl/ReservationServiceImpl.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -1,9 +1,8 @@
 package finki.db.tasty_tabs.service.impl;
 
-import finki.db.tasty_tabs.entity.Reservation;
-import finki.db.tasty_tabs.entity.User;
+import finki.db.tasty_tabs.entity.*;
 import finki.db.tasty_tabs.entity.exceptions.ReservationNotFoundException;
-import finki.db.tasty_tabs.repository.ReservationRepository;
-import finki.db.tasty_tabs.repository.UserRepository;
+import finki.db.tasty_tabs.entity.exceptions.TableNotFoundException;
+import finki.db.tasty_tabs.repository.*;
 import finki.db.tasty_tabs.service.ReservationService;
 import finki.db.tasty_tabs.web.dto.CreateReservationDto;
@@ -11,4 +10,5 @@
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -19,8 +19,14 @@
     private final ReservationRepository reservationRepository;
     private final UserRepository userRepository;
+    private final FrontStaffRepository frontStaffRepository;
+    private final RestaurantTableRepository restaurantTableRepository;
+    private final ReservationManagedFrontStaffRepository reservationManagedFrontStaffRepository;
 
-    public ReservationServiceImpl(ReservationRepository reservationRepository, UserRepository userRepository) {
+    public ReservationServiceImpl(ReservationRepository reservationRepository, UserRepository userRepository, FrontStaffRepository frontStaffRepository, RestaurantTableRepository restaurantTableRepository, ReservationManagedFrontStaffRepository reservationManagedFrontStaffRepository) {
         this.reservationRepository = reservationRepository;
         this.userRepository = userRepository;
+        this.frontStaffRepository = frontStaffRepository;
+        this.restaurantTableRepository = restaurantTableRepository;
+        this.reservationManagedFrontStaffRepository = reservationManagedFrontStaffRepository;
     }
 
@@ -75,4 +81,53 @@
         reservationRepository.deleteById(id);
     }
+
+    @Override
+    public List<Reservation> getAllReservationsByUser(String userEmail) {
+        User user = userRepository.findByEmail(userEmail)
+                .orElseThrow(() -> new UsernameNotFoundException("User with email " + userEmail + " not found."));
+        return reservationRepository.findAllByUser(user);
+    }
+
+    @Override
+    public ReservationManagedFrontStaff acceptReservation(Long reservationId, String frontStaffEmail, Integer tableNumber) {
+        User user = userRepository.findByEmail(frontStaffEmail)
+                .orElseThrow(() -> new UsernameNotFoundException("User with email " + frontStaffEmail + " not found."));
+
+        if (!(user instanceof FrontStaff)) {
+            throw new SecurityException("User is not authorized to accept reservations as they are not a FrontStaff member.");
+        }
+        FrontStaff frontStaff = (FrontStaff) user;
+        // 2. Fetch all other required entities
+        Reservation reservation = reservationRepository.findById(reservationId)
+                .orElseThrow(() -> new ReservationNotFoundException(reservationId));
+
+        RestaurantTable table = restaurantTableRepository.findById(tableNumber)
+                .orElseThrow(() -> new TableNotFoundException(tableNumber));
+
+        // 3. Create the new ReservationManagedFrontStaff entity
+        ReservationManagedFrontStaff managedReservation = new ReservationManagedFrontStaff();
+        managedReservation.setReservation(reservation);
+        managedReservation.setFrontStaff(frontStaff);
+        managedReservation.setRestaurantTable(table);
+
+        // 4. Save the new entity to the database
+        return reservationManagedFrontStaffRepository.save(managedReservation);
+    }
+    @Override
+    public List<Reservation> getAllReservationsForToday() {
+        LocalDateTime startOfDay = LocalDate.now().atStartOfDay();
+        LocalDateTime endOfDay = LocalDate.now().atTime(23, 59, 59);
+
+        return reservationRepository.findAllByDatetimeBetween(startOfDay, endOfDay);
+    }
+
+    @Override
+    public List<Reservation> getAllReservationsForDate(LocalDate date) {
+        LocalDateTime startOfDay = date.atStartOfDay();
+        LocalDateTime endOfDay = date.atTime(23, 59, 59);
+
+        return reservationRepository.findAllByDatetimeBetween(startOfDay, endOfDay);
+    }
+
 }
 
Index: src/main/java/finki/db/tasty_tabs/web/controllers/ReservationController.java
===================================================================
--- src/main/java/finki/db/tasty_tabs/web/controllers/ReservationController.java	(revision 2ca107a182731e0e3b2f35cc65e724b5108da20b)
+++ src/main/java/finki/db/tasty_tabs/web/controllers/ReservationController.java	(revision e9ac9e121a623e658d58b18bd77bf4aa27ae162e)
@@ -8,8 +8,10 @@
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.core.Authentication;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDate;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -60,3 +62,43 @@
         return ResponseEntity.noContent().build();
     }
+
+    @Operation(summary = "Get all reservations made by the logged-in user")
+    @GetMapping("/myReservations")
+    public List<ReservationDto> getMyReservations(Authentication authentication) {
+        String username = authentication.getName();
+        return reservationService.getAllReservationsByUser(username)
+                .stream()
+                .map(ReservationDto::from)
+                .collect(Collectors.toList());
+    }
+
+    @Operation(summary = "Accept a reservation by a front staff member")
+    @PostMapping("/accept/{reservationId}/table/{tableNumber}")
+    public ResponseEntity<ReservationDto> acceptReservation(
+            @PathVariable Long reservationId,
+            @PathVariable Integer tableNumber,
+            Authentication authentication
+    ) {
+        String frontStaffEmail = authentication.getName();
+        reservationService.acceptReservation(reservationId,frontStaffEmail,tableNumber);
+        return ResponseEntity.ok(ReservationDto.from(reservationService.getReservationById(reservationId)));
+    }
+    @Operation(summary = "Get all reservations for today")
+    @GetMapping("/today")
+    public List<ReservationDto> getTodayReservations() {
+        return reservationService.getAllReservationsForToday()
+                .stream()
+                .map(ReservationDto::from)
+                .collect(Collectors.toList());
+    }
+
+    @Operation(summary = "Get all reservations for a specific date")
+    @GetMapping("/by-date")
+    public List<ReservationDto> getReservationsByDate(
+            @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date) {
+        return reservationService.getAllReservationsForDate(date)
+                .stream()
+                .map(ReservationDto::from)
+                .collect(Collectors.toList());
+    }
 }
