Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerNotFoundException.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/CustomerNotFoundException.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class CustomerNotFoundException extends RuntimeException {
+    public CustomerNotFoundException(Long id) {
+        super("Customer with: " + id + " was not found.");
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EmailNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EmailNotFoundException.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/EmailNotFoundException.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -3,5 +3,5 @@
 public class EmailNotFoundException extends RuntimeException {
     public EmailNotFoundException(String username) {
-        super(String.format("User with email: %s was not found", username));
+        super("User with email: " + username + " was not found");
     }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalNotFoundException.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/LocalNotFoundException.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class LocalNotFoundException extends RuntimeException{
+    public LocalNotFoundException(Long id) {
+        super("Local with: " + id + " was not found.");
+    }
+}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationIdNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationIdNotFoundException.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ 	(revision )
@@ -1,7 +1,0 @@
-package mk.ukim.finki.it.reservengo.model.exceptions;
-
-public class ReservationIdNotFoundException extends RuntimeException {
-    public ReservationIdNotFoundException(Long id) {
-        super("Reservation with ID " + id + " was not found");
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationNotFoundException.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationNotFoundException.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/exceptions/ReservationNotFoundException.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -0,0 +1,7 @@
+package mk.ukim.finki.it.reservengo.model.exceptions;
+
+public class ReservationNotFoundException extends RuntimeException {
+    public ReservationNotFoundException(Long id) {
+        super("Reservation with ID " + id + " was not found");
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AdminServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AdminServiceImpl.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AdminServiceImpl.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -2,4 +2,5 @@
 
 import mk.ukim.finki.it.reservengo.model.Local;
+import mk.ukim.finki.it.reservengo.model.exceptions.LocalNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.LocalRepository;
 import mk.ukim.finki.it.reservengo.service.intf.AdminService;
@@ -23,5 +24,6 @@
     @Override
     public void deleteLocal(Long id) {
-        localRepository.deleteById(id);
+        Local local = localRepository.findById(id).orElseThrow(() -> new LocalNotFoundException(id));
+        localRepository.delete(local);
     }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -40,7 +40,4 @@
         customerRepository.save(customer);
         String jwt = jwtService.generateTokenNoClaims(customer);
-
-        System.out.println(jwt);
-        System.out.println(customer);
 
         return new JWTAuthenticationResponse(
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -1,20 +1,57 @@
 package mk.ukim.finki.it.reservengo.service.impl;
 
+import jakarta.transaction.Transactional;
 import mk.ukim.finki.it.reservengo.model.Customer;
+import mk.ukim.finki.it.reservengo.model.Local;
+import mk.ukim.finki.it.reservengo.model.exceptions.CustomerNotFoundException;
+import mk.ukim.finki.it.reservengo.model.exceptions.LocalNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.CustomerRepository;
+import mk.ukim.finki.it.reservengo.repository.LocalRepository;
 import mk.ukim.finki.it.reservengo.service.intf.CustomerService;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 @Service
 public class CustomerServiceImpl implements CustomerService {
     private final CustomerRepository customerRepository;
+    private final LocalRepository localRepository;
 
-    public CustomerServiceImpl(CustomerRepository customerRepository) {
+    public CustomerServiceImpl(CustomerRepository customerRepository, LocalRepository localRepository) {
         this.customerRepository = customerRepository;
+        this.localRepository = localRepository;
     }
 
     @Override
     public Customer getCustomerProfile(Long id) {
-        return customerRepository.findById(id).orElseThrow(RuntimeException::new);
+        return customerRepository.findById(id).orElseThrow(() -> new CustomerNotFoundException(id));
+    }
+
+    @Override
+    public List<Local> listFavouriteLocals(Long id) {
+        Customer customer = customerRepository.findById(id).orElseThrow(() -> new CustomerNotFoundException(id));
+        return customer.getFavouriteLocals();
+    }
+
+    @Override
+    public void addFavouriteLocal(Long userId, Long localId) {
+        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerNotFoundException(userId));
+        Local local = localRepository.findById(localId).orElseThrow(() -> new LocalNotFoundException(localId));
+
+        if (!customer.getFavouriteLocals().contains(local)) {
+            customer.getFavouriteLocals().add(local);
+        }
+
+        customerRepository.save(customer);
+    }
+
+    @Override
+    public void removeFavouriteLocal(Long userId, Long localId) {
+        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerNotFoundException(userId));
+        Local local = localRepository.findById(localId).orElseThrow(() -> new LocalNotFoundException(localId));
+
+        customer.getFavouriteLocals().remove(local);
+
+        customerRepository.save(customer);
     }
 }
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 d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/ReservationServiceImpl.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -2,5 +2,5 @@
 
 import mk.ukim.finki.it.reservengo.model.Reservation;
-import mk.ukim.finki.it.reservengo.model.exceptions.ReservationIdNotFoundException;
+import mk.ukim.finki.it.reservengo.model.exceptions.ReservationNotFoundException;
 import mk.ukim.finki.it.reservengo.repository.ReservationRepository;
 import mk.ukim.finki.it.reservengo.service.intf.ReservationService;
@@ -21,5 +21,5 @@
     @Override
     public Reservation getReservationById(Long id) {
-        return this.reservationRepository.findById(id).orElseThrow(() -> new ReservationIdNotFoundException(id));
+        return this.reservationRepository.findById(id).orElseThrow(() -> new ReservationNotFoundException(id));
     }
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/AdminService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/AdminService.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/AdminService.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -2,5 +2,4 @@
 
 public interface AdminService {
-
     void addLocal(String name);
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/CustomerService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/CustomerService.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/CustomerService.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -2,6 +2,15 @@
 
 import mk.ukim.finki.it.reservengo.model.Customer;
+import mk.ukim.finki.it.reservengo.model.Local;
+
+import java.util.List;
 
 public interface CustomerService {
     Customer getCustomerProfile(Long id);
+
+    List<Local> listFavouriteLocals(Long id);
+
+    void addFavouriteLocal(Long userId, Long localId);
+
+    void removeFavouriteLocal(Long userId, Long localId);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/CustomerController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/CustomerController.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/CustomerController.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -2,4 +2,5 @@
 
 import mk.ukim.finki.it.reservengo.model.Customer;
+import mk.ukim.finki.it.reservengo.model.Local;
 import mk.ukim.finki.it.reservengo.model.Reservation;
 import mk.ukim.finki.it.reservengo.model.User;
@@ -25,12 +26,6 @@
     }
 
-    @GetMapping
-    public ResponseEntity<?> getCustomer() {
-        return ResponseEntity.ok("ok");
-    }
-
     @GetMapping("/profile")
     public ResponseEntity<?> getUserProfile(@AuthenticationPrincipal User user) {
-        System.out.println(user.getId());
         Customer userProfile = customerService.getCustomerProfile(user.getId());
         return ResponseEntity.ok(userProfile);
@@ -42,3 +37,21 @@
         return ResponseEntity.ok(customerReservations);
     }
+
+    @GetMapping("/favourite-locals")
+    public ResponseEntity<?> listFavouriteLocals(@AuthenticationPrincipal User user) {
+        List<Local> favouriteLocals = customerService.listFavouriteLocals(user.getId());
+        return ResponseEntity.ok(favouriteLocals);
+    }
+
+    @PostMapping("/favourite-locals/add/{id}")
+    public ResponseEntity<?> addFavouriteLocal(@AuthenticationPrincipal User user, @PathVariable Long id) {
+        customerService.addFavouriteLocal(user.getId(), id);
+        return ResponseEntity.ok().build();
+    }
+
+    @PostMapping("/favourite-locals/remove/{id}")
+    public ResponseEntity<?> removeFavouriteLocal(@AuthenticationPrincipal User user, @PathVariable Long id) {
+        customerService.removeFavouriteLocal(user.getId(), id);
+        return ResponseEntity.ok().build();
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/ReservationController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/ReservationController.java	(revision d9884b2e44adadbfe7faf44350fcf4c3e09dff89)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/ReservationController.java	(revision 9bcad23014032900a30a400c42d32d68381175be)
@@ -26,6 +26,5 @@
 
     @PostMapping("/reservations/{id}/status")
-    public ResponseEntity<?> updateReservationStatus(@PathVariable Long id,
-                                                     @RequestParam ReservationStatus status) {
+    public ResponseEntity<?> updateReservationStatus(@PathVariable Long id, @RequestParam ReservationStatus status) {
         Reservation reservation = reservationService.getReservationById(id);
         reservation.setStatus(status);
