Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -3,5 +3,4 @@
 import jakarta.annotation.PostConstruct;
 import mk.ukim.finki.it.reservengo.model.domain.*;
-import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
 import mk.ukim.finki.it.reservengo.model.enumerations.LocalType;
 import mk.ukim.finki.it.reservengo.model.enumerations.Role;
@@ -11,6 +10,9 @@
 import org.springframework.stereotype.Component;
 
+import java.time.DayOfWeek;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
@@ -91,5 +93,5 @@
 
         //Local
-        List<ProvidedService> serviceList = new ArrayList<>(List.of(ProvidedService.values()));
+        List<ProvidedService> serviceList = new ArrayList<>(Arrays.asList(ProvidedService.values()));
         for (int i = 1; i <= 3; i++) {
             Local local = new Local(
@@ -97,5 +99,10 @@
                     "Description" + i,
                     "Address" + i,
-                    "WorkingHours" + i,
+                    new ArrayList<>(Arrays.asList(
+                            new WorkingHour(DayOfWeek.MONDAY, LocalTime.of(9, 0), LocalTime.of(17, 0)),
+                            new WorkingHour(DayOfWeek.TUESDAY, LocalTime.of(9, 0), LocalTime.of(17, 0)),
+                            new WorkingHour(DayOfWeek.WEDNESDAY, LocalTime.of(9, 0), LocalTime.of(17, 0)),
+                            new WorkingHour(DayOfWeek.SATURDAY, LocalTime.of(9, 0), LocalTime.of(21, 0))
+                    )),
                     serviceList,
                     null,
@@ -109,4 +116,5 @@
                     LocalType.RESTAURANT
             );
+
             locals.add(local);
         }
@@ -120,6 +128,5 @@
                     LocalDateTime.now().plusDays(7), // Future date
                     LocalDateTime.now().plusDays(8),
-                    local,
-                    EventStatus.ACTIVE
+                    local
             );
 
@@ -130,6 +137,5 @@
                     LocalDateTime.now().minusDays(7), // Past date
                     LocalDateTime.now().minusDays(6),
-                    local,
-                    EventStatus.FINISHED
+                    local
             );
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/contactDTO/ContactDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/contactDTO/ContactDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/contactDTO/ContactDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -0,0 +1,25 @@
+package mk.ukim.finki.it.reservengo.dto.contactDTO;
+
+import mk.ukim.finki.it.reservengo.model.domain.Contact;
+
+import java.util.Map;
+
+public record ContactDTO(
+        String phone,
+        String email,
+        Map<String, String> socialLinks
+) {
+    public static ContactDTO from(Contact contact) {
+        return new ContactDTO(
+                contact.getPhone(),
+                contact.getEmail(),
+                contact.getSocialLinks()
+        );
+    }
+
+    public Contact toContact() {
+        return new Contact(
+                phone, email, socialLinks
+        );
+    }
+}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/contactDTO/DisplayContactDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/contactDTO/DisplayContactDTO.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ 	(revision )
@@ -1,25 +1,0 @@
-package mk.ukim.finki.it.reservengo.dto.contactDTO;
-
-import mk.ukim.finki.it.reservengo.model.domain.Contact;
-
-import java.util.Map;
-
-public record DisplayContactDTO(
-        String phone,
-        String email,
-        Map<String, String> socialLinks
-) {
-    public static DisplayContactDTO from(Contact contact) {
-        return new DisplayContactDTO(
-                contact.getPhone(),
-                contact.getEmail(),
-                contact.getSocialLinks()
-        );
-    }
-
-    public Contact toContact() {
-        return new Contact(
-                phone, email, socialLinks
-        );
-    }
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/eventDTO/DisplayEventDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/eventDTO/DisplayEventDTO.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/eventDTO/DisplayEventDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -2,5 +2,4 @@
 
 import mk.ukim.finki.it.reservengo.model.domain.Event;
-import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
 
 import java.time.LocalDateTime;
@@ -13,6 +12,5 @@
         LocalDateTime eventStart,
         LocalDateTime eventEnd,
-        Long localId,
-        EventStatus eventStatus
+        Long localId
 ) {
     public static DisplayEventDTO fromEvent(Event event) {
@@ -23,6 +21,5 @@
                 event.getEventStart(),
                 event.getEventEnd(),
-                event.getLocal().getId(),
-                event.getStatus()
+                event.getLocal().getId()
         );
     }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/jwtDTO/JWTAuthenticationResponseDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/jwtDTO/JWTAuthenticationResponseDTO.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/jwtDTO/JWTAuthenticationResponseDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -10,5 +10,5 @@
         String lastName,
         String email,
-        String phoneNumber,
+        String logoUrl,
         Role role,
         String token
@@ -20,5 +20,5 @@
                 user.getLastName(),
                 user.getEmail(),
-                user.getPhoneNumber(),
+                user.getProfilePhotoUrl(),
                 user.getUserRole(),
                 jwt
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/CreateLocalDetailsDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/CreateLocalDetailsDTO.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/CreateLocalDetailsDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -1,5 +1,5 @@
 package mk.ukim.finki.it.reservengo.dto.localDTO;
 
-import mk.ukim.finki.it.reservengo.dto.contactDTO.DisplayContactDTO;
+import mk.ukim.finki.it.reservengo.dto.contactDTO.ContactDTO;
 import mk.ukim.finki.it.reservengo.model.enumerations.LocalType;
 import mk.ukim.finki.it.reservengo.model.enumerations.ProvidedService;
@@ -11,9 +11,9 @@
         String description,
         String address,
-        String workingHours,
+        List<WorkingHourDTO> workingHours,
         List<ProvidedService> services,
         LocalType localType,
         String menuLink,
-        DisplayContactDTO contact
+        ContactDTO contact
 ) {
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/DisplayLocalDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/DisplayLocalDTO.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/DisplayLocalDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -11,5 +11,5 @@
         String description,
         String address,
-        String workingHours,
+        Boolean open,
         String logo,
         LocalType localType,
@@ -22,5 +22,5 @@
                 local.getDescription(),
                 local.getAddress(),
-                local.getWorkingHours(),
+                local.isOpenNow(),
                 local.getLogoUrl(),
                 local.getLocalType(),
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/DisplayLocalDetailsDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/DisplayLocalDetailsDTO.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/DisplayLocalDetailsDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -1,7 +1,9 @@
 package mk.ukim.finki.it.reservengo.dto.localDTO;
 
-import mk.ukim.finki.it.reservengo.dto.contactDTO.DisplayContactDTO;
+import mk.ukim.finki.it.reservengo.dto.contactDTO.ContactDTO;
 import mk.ukim.finki.it.reservengo.dto.eventDTO.DisplayEventDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
+import mk.ukim.finki.it.reservengo.model.domain.WorkingHour;
+import mk.ukim.finki.it.reservengo.model.enumerations.LocalType;
 import mk.ukim.finki.it.reservengo.model.enumerations.ProvidedService;
 
@@ -13,5 +15,5 @@
         String description,
         String address,
-        String workingHours,
+        List<WorkingHourDTO> workingHours,
         List<ProvidedService> services,
         Double ratingAvg,
@@ -19,6 +21,7 @@
         List<String> localPhotos,
         String menuLink,
-        DisplayContactDTO contact,
-        String logo
+        ContactDTO contact,
+        String logo,
+        LocalType localType
 ) {
     public static DisplayLocalDetailsDTO from(Local local) {
@@ -28,12 +31,13 @@
                 local.getDescription(),
                 local.getAddress(),
-                local.getWorkingHours(),
+                WorkingHourDTO.from(local.getWorkingHours()),
                 local.getAvailableServices(),
                 local.getAverageRating(),
                 DisplayEventDTO.fromEvents(local.getEvents()),
-                local.getLocalPhotos(),
+                local.getPhotos(),
                 local.getMenuLink(),
-                DisplayContactDTO.from(local.getContact()),
-                local.getLogoUrl()
+                ContactDTO.from(local.getContact()),
+                local.getLogoUrl(),
+                local.getLocalType()
         );
     }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/PagedLocalDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/PagedLocalDTO.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/PagedLocalDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -1,6 +1,4 @@
 package mk.ukim.finki.it.reservengo.dto.localDTO;
 
-import mk.ukim.finki.it.reservengo.model.enumerations.LocalType;
-import mk.ukim.finki.it.reservengo.model.enumerations.ProvidedService;
 import org.springframework.data.domain.Page;
 
@@ -9,10 +7,8 @@
 
 public record PagedLocalDTO(
-        List<DisplayLocalDTO> local,
+        List<DisplayLocalDTO> locals,
         int currentPage,
         int totalPages,
-        long itemsPerPage,
-        List<ProvidedService> services,
-        List<LocalType> localTypes
+        long itemsPerPage
 ) {
     public static PagedLocalDTO from(Page<DisplayLocalDTO> page) {
@@ -21,7 +17,5 @@
                 page.getNumber(),
                 page.getTotalPages(),
-                page.getTotalElements(),
-                List.of(ProvidedService.values()),
-                List.of(LocalType.values())
+                page.getTotalElements()
         );
     }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/WorkingHourDTO.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/WorkingHourDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/dto/localDTO/WorkingHourDTO.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -0,0 +1,41 @@
+package mk.ukim.finki.it.reservengo.dto.localDTO;
+
+import mk.ukim.finki.it.reservengo.model.domain.WorkingHour;
+
+import java.time.DayOfWeek;
+import java.time.LocalTime;
+import java.util.List;
+
+public record WorkingHourDTO(
+        DayOfWeek dayOfWeek,
+        LocalTime openTime,
+        LocalTime closeTime
+) {
+    public static WorkingHourDTO from(WorkingHour workingHour) {
+        return new WorkingHourDTO(
+                workingHour.getDayOfWeek(),
+                workingHour.getOpenTime(),
+                workingHour.getCloseTime()
+        );
+    }
+
+    public static List<WorkingHourDTO> from(List<WorkingHour> workingHours) {
+        return workingHours.stream()
+                .map(WorkingHourDTO::from)
+                .toList();
+    }
+
+    public WorkingHour to() {
+        return new WorkingHour(
+                dayOfWeek,
+                openTime,
+                closeTime
+        );
+    }
+
+    public static List<WorkingHour> to(List<WorkingHourDTO> list) {
+        return list.stream()
+                .map(WorkingHourDTO::to)
+                .toList();
+    }
+}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/Event.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/Event.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/Event.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -3,5 +3,4 @@
 import jakarta.persistence.*;
 import lombok.*;
-import mk.ukim.finki.it.reservengo.model.enumerations.EventStatus;
 
 import java.time.LocalDateTime;
@@ -17,4 +16,7 @@
     private Long id;
 
+    @ManyToOne
+    private Local local;
+
     private String name;
 
@@ -25,11 +27,5 @@
     private LocalDateTime eventEnd;
 
-    @ManyToOne
-    private Local local;
-
-    @Enumerated(EnumType.STRING)
-    private EventStatus status;
-
-    public Event(String name, String description, LocalDateTime eventStart, LocalDateTime eventEnd, Local local, EventStatus status) {
+    public Event(String name, String description, LocalDateTime eventStart, LocalDateTime eventEnd, Local local) {
         this.name = name;
         this.description = description;
@@ -37,5 +33,4 @@
         this.eventEnd = eventEnd;
         this.local = local;
-        this.status = status;
     }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/Local.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/Local.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/Local.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -11,4 +11,7 @@
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
+import java.time.DayOfWeek;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.List;
 import java.util.Map;
@@ -33,5 +36,6 @@
     private String address;
 
-    private String workingHours;
+    @ElementCollection
+    private List<WorkingHour> workingHours;
 
     @Enumerated(EnumType.STRING)
@@ -46,9 +50,9 @@
     private Map<Long, Integer> ratings;
 
-    @OneToMany(mappedBy = "local", cascade = CascadeType.ALL)
+    @OneToMany(mappedBy = "local", cascade = CascadeType.ALL, orphanRemoval = true)
     private List<Event> events;
 
     @ElementCollection
-    private List<String> localPhotos;
+    private List<String> photos;
 
     private String menuLink;
@@ -65,5 +69,5 @@
     private String logoUrl;
 
-    public Local(String name, String description, String address, String workingHours, List<ProvidedService> availableServices, Map<Long, Integer> ratings, List<Event> events, String logoUrl, List<String> localPhotos, String menuLink, Contact contact, List<Reservation> reservations, List<LocalWorker> workers, LocalType localType) {
+    public Local(String name, String description, String address, List<WorkingHour> workingHours, List<ProvidedService> availableServices, Map<Long, Integer> ratings, List<Event> events, String logoUrl, List<String> photos, String menuLink, Contact contact, List<Reservation> reservations, List<LocalWorker> workers, LocalType localType) {
         this.name = name;
         this.description = description;
@@ -74,5 +78,5 @@
         this.events = events;
         this.logoUrl = logoUrl;
-        this.localPhotos = localPhotos;
+        this.photos = photos;
         this.menuLink = menuLink;
         this.contact = contact;
@@ -96,3 +100,19 @@
                 .orElse(0.0);
     }
+
+    public boolean isOpenNow() {
+        if (workingHours == null || workingHours.isEmpty()){
+            return false;
+        }
+
+        LocalDateTime now = LocalDateTime.now();
+        DayOfWeek today = now.getDayOfWeek();
+        LocalTime currentTime = now.toLocalTime();
+
+        return workingHours.stream()
+                .filter(wh -> wh.getDayOfWeek().name().equals(today.name()))
+                .anyMatch(wh ->
+                        currentTime.isAfter(wh.getOpenTime()) && currentTime.isBefore(wh.getCloseTime())
+                );
+    }
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/WorkingHour.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/WorkingHour.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/domain/WorkingHour.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -0,0 +1,19 @@
+package mk.ukim.finki.it.reservengo.model.domain;
+
+import jakarta.persistence.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.DayOfWeek;
+import java.time.LocalTime;
+
+@Embeddable
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WorkingHour {
+    private DayOfWeek dayOfWeek;
+    private LocalTime openTime;
+    private LocalTime closeTime;
+}
Index: serveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/EventStatus.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/EventStatus.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ 	(revision )
@@ -1,6 +1,0 @@
-package mk.ukim.finki.it.reservengo.model.enumerations;
-
-public enum EventStatus {
-    ACTIVE,
-    FINISHED
-}
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalManagerServiceImpl.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -82,7 +82,9 @@
     @Override
     public Local editLocal(Long managerId, CreateLocalDetailsDTO createLocalDetailsDTO) {
-        LocalManager localManager = localManagerRepository.findById(managerId).orElseThrow(() -> new LocalManagerIdNotFoundException(managerId));
-
-        return localService.edit(localManager.getLocal().getId(), createLocalDetailsDTO);
+        LocalManager manager = localManagerRepository.findById(managerId).orElseThrow(() -> new LocalManagerIdNotFoundException(managerId));
+        if (manager.getLocal() == null) {
+            throw new ManagerNotAssignedException(manager.getId());
+        }
+        return localService.edit(manager.getLocal().getId(), createLocalDetailsDTO);
     }
 
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -4,4 +4,5 @@
 import mk.ukim.finki.it.reservengo.dto.localDTO.DeleteLocalPhotosResultDTO;
 import mk.ukim.finki.it.reservengo.dto.localDTO.DisplayLocalDTO;
+import mk.ukim.finki.it.reservengo.dto.localDTO.WorkingHourDTO;
 import mk.ukim.finki.it.reservengo.model.domain.Local;
 import mk.ukim.finki.it.reservengo.model.enumerations.LocalType;
@@ -21,4 +22,5 @@
 import java.util.List;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
@@ -57,13 +59,11 @@
         local.setDescription(createLocalDetailsDTO.description());
         local.setAddress(createLocalDetailsDTO.address());
-        local.setWorkingHours(createLocalDetailsDTO.workingHours());
-        local.setAvailableServices(createLocalDetailsDTO.services());
+        local.setWorkingHours(new ArrayList<>(WorkingHourDTO.to(createLocalDetailsDTO.workingHours())));
+        local.setAvailableServices(new ArrayList<>(createLocalDetailsDTO.services()));
         local.setLocalType(createLocalDetailsDTO.localType());
         local.setMenuLink(createLocalDetailsDTO.menuLink());
         local.setContact(createLocalDetailsDTO.contact().toContact());
 
-        localRepository.save(local);
-
-        return local;
+        return localRepository.save(local);
     }
 
@@ -108,5 +108,5 @@
         Local local = localRepository.findById(localId).orElseThrow(() -> new LocalIdNotFoundException(localId));
 
-        List<String> photoPaths = local.getLocalPhotos();
+        List<String> photoPaths = local.getPhotos();
 
         if (photoPaths == null) {
@@ -125,5 +125,5 @@
     public DeleteLocalPhotosResultDTO deletePhotos(Long localId, List<String> photoPaths) {
         Local local = localRepository.findById(localId).orElseThrow(() -> new LocalIdNotFoundException(localId));
-        List<String> currentPhotoUrls = local.getLocalPhotos();
+        List<String> currentPhotoUrls = local.getPhotos();
 
         if (currentPhotoUrls == null || currentPhotoUrls.isEmpty()) {
@@ -143,5 +143,5 @@
             }
         }
-        local.setLocalPhotos(currentPhotoUrls);
+        local.setPhotos(currentPhotoUrls);
         localRepository.save(local);
 
@@ -150,8 +150,11 @@
 
     @Override
-    public Page<DisplayLocalDTO> searchLocals(String name, List<ProvidedService> services, LocalType localType, int page, int size, String sortBy, String direction) {
+    public Page<DisplayLocalDTO> searchLocals(String name, List<ProvidedService> services, LocalType localType, Boolean isOpen, int page, int size, String sortBy, String direction
+    ) {
+        if (isOpen == null) {
+            isOpen = false;
+        }
         boolean sortByRating = "rating".equalsIgnoreCase(sortBy);
-
-        Pageable pageable = PageRequest.of(page, size, getSort(sortBy, direction));
+        boolean needsManualProcessing = isOpen || sortByRating;
 
         Specification<Local> spec = Specification.where(null);
@@ -170,16 +173,37 @@
         }
 
+        // If we need manual processing, get all results; otherwise use normal pagination
+        Pageable pageable = needsManualProcessing ? Pageable.unpaged() : PageRequest.of(page, size, getSort(sortBy, direction));
         Page<Local> localsPage = localRepository.findAll(spec, pageable);
 
-        // If sorting by rating, do it in-memory after mapping to DTOs
-        if (sortByRating) {
-            List<DisplayLocalDTO> sorted = localsPage.getContent().stream()
+        if (needsManualProcessing) {
+            Stream<Local> localStream = localsPage.getContent().stream();
+
+            // Filters only open restaurants if requested
+            if (isOpen) {
+                localStream = localStream.filter(Local::isOpenNow);
+            }
+
+            List<DisplayLocalDTO> dtoList = localStream
                     .map(DisplayLocalDTO::fromLocal)
-                    .sorted(Comparator.comparingDouble(DisplayLocalDTO::averageRating).reversed())
                     .collect(Collectors.toList());
 
-            return new PageImpl<>(sorted, pageable, localsPage.getTotalElements());
-        }
-
+            // Sort by rating (highest to lowest) if requested
+            if (sortByRating) {
+                dtoList = dtoList.stream()
+                        .sorted(Comparator.comparingDouble(DisplayLocalDTO::averageRating).reversed())
+                        .collect(Collectors.toList());
+            }
+
+            // Manual pagination
+            int totalElements = dtoList.size();
+            int start = Math.min(page * size, totalElements);
+            int end = Math.min(start + size, totalElements);
+            List<DisplayLocalDTO> pagedResults = dtoList.subList(start, end);
+
+            return new PageImpl<>(pagedResults, PageRequest.of(page, size), totalElements);
+        }
+
+        // Normal database-level pagination and sorting
         return localsPage.map(DisplayLocalDTO::fromLocal);
     }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -31,4 +31,4 @@
     DeleteLocalPhotosResultDTO deletePhotos(Long localId, List<String> photoUrls);
 
-    Page<DisplayLocalDTO> searchLocals(String name, List<ProvidedService> services, LocalType localType, int page, int size, String sortBy, String direction);
+    Page<DisplayLocalDTO> searchLocals(String name, List<ProvidedService> services, LocalType localType, Boolean isOpen, int page, int size, String sortBy, String direction);
 }
Index: ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalController.java
===================================================================
--- ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalController.java	(revision f153db4398a08b0cf618de053ec6bb76de1332d4)
+++ ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/controller/LocalController.java	(revision ac6da220e5ac6d1eb87092a8b5792cf225b59338)
@@ -29,4 +29,5 @@
             @RequestParam(required = false) List<ProvidedService> services,
             @RequestParam(required = false)LocalType localType,
+            @RequestParam(required = false) Boolean isOpen,
             @RequestParam(required = false, defaultValue = "name") String sortBy,
             @RequestParam(required = false, defaultValue = "asc") String direction,
@@ -34,5 +35,5 @@
             @RequestParam(defaultValue = "10") int size
             ) {
-        Page<DisplayLocalDTO> dtoPage = localService.searchLocals(name, services, localType, page, size, sortBy, direction);
+        Page<DisplayLocalDTO> dtoPage = localService.searchLocals(name, services, localType, isOpen, page, size, sortBy, direction);
         PagedLocalDTO pagedLocalDTO = PagedLocalDTO.from(dtoPage);
         return new ResponseEntity<>(pagedLocalDTO, HttpStatus.OK);
