Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/DisplayLocalReservationDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/DisplayLocalReservationDTO.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/workerDTO/DisplayLocalReservationDTO.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -0,0 +1,35 @@
+package mk.ukim.finki.it.reservengo.dto.workerDTO;
+
+import mk.ukim.finki.it.reservengo.model.domain.Reservation;
+import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+public record DisplayLocalReservationDTO(
+        Long reservationId,
+        String customerName,
+        Long customerId,
+        LocalDateTime timeOfReservation,
+        Integer tableNumber,
+        Integer tableCapacity,
+        ReservationStatus reservationStatus
+) {
+    public static DisplayLocalReservationDTO from(Reservation reservation) {
+        return new DisplayLocalReservationDTO(
+                reservation.getId(),
+                reservation.getCustomer().getFirstName(),
+                reservation.getCustomer().getId(),
+                reservation.getTimeOfReservation(),
+                reservation.getTable().getTableNumber(),
+                reservation.getTable().getCapacity(),
+                reservation.getStatus()
+        );
+    }
+
+    public static List<DisplayLocalReservationDTO> from(List<Reservation> reservations) {
+        return reservations.stream()
+                .map(DisplayLocalReservationDTO::from)
+                .toList();
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/ReservationStatus.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/ReservationStatus.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/ReservationStatus.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -5,4 +5,5 @@
     PENDING,
     ACCEPTED,
-    CANCELED
+    CANCELED,
+    FINISHED
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/UnauthorizedException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/UnauthorizedException.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/UnauthorizedException.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -0,0 +1,11 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class UnauthorizedException extends RuntimeException {
+    public UnauthorizedException(Long id) {
+        super("User with id " + id + " is not a worker");
+    }
+
+  public UnauthorizedException(Long workerId,Long localId) {
+      super("User with id " + workerId + " is not a worker in local " + localId);
+  }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalRepository.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalRepository.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalRepository.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -8,3 +8,4 @@
 @Repository
 public interface LocalRepository extends JpaRepository<Local, Long>, JpaSpecificationExecutor<Local> {
+//    Local findById(Long id);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/ReservationRepository.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/ReservationRepository.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/ReservationRepository.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -12,3 +12,7 @@
 public interface ReservationRepository extends JpaRepository<Reservation, Long> {
     List<Reservation> findByTableIdAndTimeOfReservationAndStatusNot(Long tableId, LocalDateTime reservationTime, ReservationStatus reservationStatus);
+
+    List<Reservation> findByLocalId(Long id);
+
+    List<Reservation> findByLocalIdAndStatus(Long id, ReservationStatus status);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalWorkerServiceImpl.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -1,10 +1,15 @@
 package mk.ukim.finki.it.reservengo.service.impl;
 
+import mk.ukim.finki.it.reservengo.dto.workerDTO.DisplayLocalReservationDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalWorker;
+import mk.ukim.finki.it.reservengo.model.domain.Reservation;
 import mk.ukim.finki.it.reservengo.model.enumerations.Position;
-import mk.ukim.finki.it.reservengo.model.exceptions.UserEmailAlreadyExistsException;
-import mk.ukim.finki.it.reservengo.model.exceptions.WorkerIdNotFoundException;
+import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
+import mk.ukim.finki.it.reservengo.model.enumerations.Role;
+import mk.ukim.finki.it.reservengo.model.exceptions.*;
+import mk.ukim.finki.it.reservengo.repository.LocalRepository;
 import mk.ukim.finki.it.reservengo.repository.LocalWorkerRepository;
+import mk.ukim.finki.it.reservengo.repository.ReservationRepository;
 import mk.ukim.finki.it.reservengo.service.intf.LocalWorkerService;
 import mk.ukim.finki.it.reservengo.service.intf.UserService;
@@ -18,8 +23,12 @@
     private final LocalWorkerRepository localWorkerRepository;
     private final UserService userService;
+    private final LocalRepository localRepository;
+    private final ReservationRepository reservationRepository;
 
-    public LocalWorkerServiceImpl(LocalWorkerRepository localWorkerRepository, UserService userService) {
+    public LocalWorkerServiceImpl(LocalWorkerRepository localWorkerRepository, UserService userService, LocalRepository localRepository, ReservationRepository reservationRepository) {
         this.localWorkerRepository = localWorkerRepository;
         this.userService = userService;
+        this.localRepository = localRepository;
+        this.reservationRepository = reservationRepository;
     }
 
@@ -62,6 +71,65 @@
             worker.setPosition(null);
         }
-
         localWorkerRepository.save(worker);
     }
+
+    @Override
+    public List<DisplayLocalReservationDTO> viewLocalReservations(Long id,ReservationStatus status) {
+        Local local = localRepository.findById(id).orElseThrow(() -> new LocalIdNotFoundException(id));
+
+        List<Reservation> reservations;
+
+        if (status != null){
+            reservations = reservationRepository.findByLocalIdAndStatus(local.getId(),status);
+        } else {
+            reservations = reservationRepository.findByLocalId(local.getId());
+        }
+        return DisplayLocalReservationDTO.from(reservations);
+    }
+
+    @Override
+    public void validateWorker(Long id, Long localId) {
+        LocalWorker worker = localWorkerRepository.findById(id).orElseThrow(() -> new WorkerIdNotFoundException(id));
+
+        if (worker.getUserRole() != Role.ROLE_LOCAL_WORKER) {
+            throw new UnauthorizedException(worker.getId());
+        }
+
+        if (!worker.getLocal().getId().equals(localId)) {
+            throw new UnauthorizedException(worker.getId(), localId);
+        }
+    }
+
+    @Override
+    public void acceptReservation(Long id, Long reservationId) {
+        Reservation reservation = reservationRepository.findById(reservationId).orElseThrow(() -> new ReservationIdNotFoundException(reservationId));
+        Long localId = reservation.getLocal().getId();
+
+        validateWorker(id, localId);
+
+        reservation.setStatus(ReservationStatus.ACCEPTED);
+        reservationRepository.save(reservation);
+    }
+
+    @Override
+    public void denyReservation(Long id, Long reservationId) {
+        Reservation reservation = reservationRepository.findById(reservationId).orElseThrow(() -> new ReservationIdNotFoundException(reservationId));
+        Long localId = reservation.getLocal().getId();
+
+        validateWorker(id, localId);
+
+        reservation.setStatus(ReservationStatus.CANCELED);
+        reservationRepository.save(reservation);
+    }
+
+    @Override
+    public void finishReservation(Long id, Long reservationId) {
+        Reservation reservation = reservationRepository.findById(reservationId).orElseThrow(() -> new ReservationIdNotFoundException(reservationId));
+        Long localId = reservation.getLocal().getId();
+
+        validateWorker(id, localId);
+
+        reservation.setStatus(ReservationStatus.FINISHED);
+        reservationRepository.save(reservation);
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -1,4 +1,3 @@
 package mk.ukim.finki.it.reservengo.service.impl;
-
 import mk.ukim.finki.it.reservengo.service.intf.ReservationService;
 import org.springframework.stereotype.Service;
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalWorkerService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalWorkerService.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalWorkerService.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -1,7 +1,9 @@
 package mk.ukim.finki.it.reservengo.service.intf;
 
+import mk.ukim.finki.it.reservengo.dto.workerDTO.DisplayLocalReservationDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.domain.LocalWorker;
 import mk.ukim.finki.it.reservengo.model.enumerations.Position;
+import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
 
 import java.util.List;
@@ -19,3 +21,13 @@
 
     void updateLocalAssignment(LocalWorker worker, Local local);
+
+    List<DisplayLocalReservationDTO> viewLocalReservations(Long id, ReservationStatus status);
+
+    void validateWorker(Long id,Long localId);
+
+    void acceptReservation(Long id,Long reservationId);
+
+    void denyReservation(Long id,Long reservationId);
+
+    void finishReservation(Long id, Long reservationId);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/ReservationService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/ReservationService.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/ReservationService.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -1,3 +1,4 @@
 package mk.ukim.finki.it.reservengo.service.intf;
+
 
 public interface ReservationService {
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/jobs/ScheduledTasks.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/jobs/ScheduledTasks.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/jobs/ScheduledTasks.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -1,6 +1,9 @@
 package mk.ukim.finki.it.reservengo.service.jobs;
 
+import mk.ukim.finki.it.reservengo.model.domain.Reservation;
 import mk.ukim.finki.it.reservengo.model.domain.User;
+import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
 import mk.ukim.finki.it.reservengo.model.enumerations.Role;
+import mk.ukim.finki.it.reservengo.repository.ReservationRepository;
 import mk.ukim.finki.it.reservengo.repository.UserRepository;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -15,7 +18,9 @@
 
     private final UserRepository userRepository;
+    private final ReservationRepository reservationRepository;
 
-    public ScheduledTasks(UserRepository userRepository) {
+    public ScheduledTasks(UserRepository userRepository, ReservationRepository reservationRepository) {
         this.userRepository = userRepository;
+        this.reservationRepository = reservationRepository;
     }
 
@@ -43,3 +48,20 @@
         userRepository.saveAll(usersToDisable);
     }
+
+    @Transactional
+    @Scheduled(cron = "0 0 0/3 * * ?")
+    public void expireOldReservations() {
+        List<Reservation> reservations = reservationRepository.findAll();
+        LocalDateTime now = LocalDateTime.now();
+
+        for (Reservation reservation : reservations) {
+            if (reservation.getTimeOfReservation().isBefore(now)
+                    && reservation.getStatus() != ReservationStatus.CANCELED
+                    && reservation.getStatus() != ReservationStatus.EXPIRED
+                    && reservation.getStatus() != ReservationStatus.FINISHED) {
+                reservation.setStatus(ReservationStatus.EXPIRED);
+                reservationRepository.save(reservation);
+            }
+        }
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/CustomerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/CustomerController.java	(revision bc58fc0cc20e86c1c76ab7759d4dac332b9f8dab)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/CustomerController.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -17,5 +17,5 @@
 @RequestMapping("/api/customer")
 @PreAuthorize("hasRole('CUSTOMER')")
-public class CustomerController {
+public class    CustomerController {
 
     private final CustomerService customerService;
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalWorkerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalWorkerController.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalWorkerController.java	(revision 647398c650ea9266179f1b46747cadd6bfb7f020)
@@ -0,0 +1,50 @@
+package mk.ukim.finki.it.reservengo.web.controller;
+
+import mk.ukim.finki.it.reservengo.dto.workerDTO.DisplayLocalReservationDTO;
+import mk.ukim.finki.it.reservengo.model.domain.User;
+import mk.ukim.finki.it.reservengo.model.enumerations.ReservationStatus;
+import mk.ukim.finki.it.reservengo.service.intf.LocalWorkerService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/local-worker")
+public class LocalWorkerController {
+    private final LocalWorkerService localWorkerService;
+
+    public LocalWorkerController(LocalWorkerService localWorkerService) {
+        this.localWorkerService = localWorkerService;
+    }
+
+    @GetMapping("/{localId}/reservations")
+    public ResponseEntity<List<DisplayLocalReservationDTO>> viewLocalReservations(@PathVariable Long localId, @RequestParam(required = false) ReservationStatus status,@AuthenticationPrincipal User user) {
+        localWorkerService.validateWorker(user.getId(), localId);
+        List<DisplayLocalReservationDTO> reservations = localWorkerService.viewLocalReservations(localId,status);
+        return new ResponseEntity<>(reservations, HttpStatus.OK);
+    }
+
+    @PutMapping("/reservations/{reservationId}/accept")
+    public ResponseEntity<Void> acceptReservation(@PathVariable Long reservationId, @AuthenticationPrincipal User user) {
+        localWorkerService.acceptReservation(user.getId(), reservationId);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @PutMapping("/reservations/{reservationId}/deny")
+    public ResponseEntity<Void> denyReservation(@PathVariable Long reservationId, @AuthenticationPrincipal User user) {
+        localWorkerService.denyReservation(user.getId(), reservationId);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @PutMapping("/reservations/{reservationId}/finish")
+    public ResponseEntity<Void> finishReservation(
+            @PathVariable Long reservationId,
+            @AuthenticationPrincipal User user) {
+        localWorkerService.finishReservation(user.getId(), reservationId);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+}
