Index: src/main/java/com/example/rezevirajmasa/demo/repository/RestaurantRepository.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/repository/RestaurantRepository.java	(revision 65b6638865a1485e9cc722615973d9fb675b9d84)
+++ src/main/java/com/example/rezevirajmasa/demo/repository/RestaurantRepository.java	(revision 75f50866bac587cbe5cf2dfb97353279f16a8c82)
@@ -8,5 +8,5 @@
 
 public interface RestaurantRepository extends JpaRepository<Restaurant, Long> {
-
-
+    List<Restaurant> findAllByNameLike(String search);
+    List<Restaurant> findAllByCuisineTypeLike(String search);
 }
Index: src/main/java/com/example/rezevirajmasa/demo/repository/TableRepository.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/repository/TableRepository.java	(revision 65b6638865a1485e9cc722615973d9fb675b9d84)
+++ src/main/java/com/example/rezevirajmasa/demo/repository/TableRepository.java	(revision 75f50866bac587cbe5cf2dfb97353279f16a8c82)
@@ -7,4 +7,5 @@
 import org.springframework.data.repository.query.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
@@ -13,3 +14,4 @@
 //    @Query("SELECT t FROM TableEntity t JOIN FETCH t.restaurant WHERE t.id = :id")
 //    TableEntity findTableEntityByIdWithRestaurant(@Param("id") Long id);
+    List<TableEntity> findAllByTimeSlotsContainingAndCapacity(LocalDateTime timeSlot, Integer partySize);
 }
Index: src/main/java/com/example/rezevirajmasa/demo/service/RestaurantService.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/service/RestaurantService.java	(revision 65b6638865a1485e9cc722615973d9fb675b9d84)
+++ src/main/java/com/example/rezevirajmasa/demo/service/RestaurantService.java	(revision 75f50866bac587cbe5cf2dfb97353279f16a8c82)
@@ -21,3 +21,4 @@
     List<Restaurant> getRestaurantsWithAvailableTimeSlotsForToday();
     public List<Restaurant> findRestaurantsByDateTimeAndPartySize(LocalDateTime dateTime, int partySize, String search);
+    public List<Restaurant> findRestaurantsBySearchParams(LocalDateTime dateTime, int partySize, String search);
 }
Index: src/main/java/com/example/rezevirajmasa/demo/service/impl/RestaurantServiceImpl.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/service/impl/RestaurantServiceImpl.java	(revision 65b6638865a1485e9cc722615973d9fb675b9d84)
+++ src/main/java/com/example/rezevirajmasa/demo/service/impl/RestaurantServiceImpl.java	(revision 75f50866bac587cbe5cf2dfb97353279f16a8c82)
@@ -165,3 +165,22 @@
         return name == null || name.isEmpty() || restaurant.getName().contains(name);
     }
+
+    @Override
+    public List<Restaurant> findRestaurantsBySearchParams(LocalDateTime dateTime, int partySize, String search) {
+        if (!search.isEmpty()) {
+            List<Restaurant> restaurantList = null;
+            if (!restaurantRepository.findAllByNameLike(search).isEmpty()) {
+                restaurantList = restaurantRepository.findAllByNameLike(search);
+            } else {
+                restaurantList = restaurantRepository.findAllByCuisineTypeLike(search);
+            }
+            return restaurantList;
+        } else {
+            List<TableEntity> tableEntities = tableRepository.findAllByTimeSlotsContainingAndCapacity(dateTime, partySize);
+            return tableEntities.stream()
+                    .map(TableEntity::getRestaurant)
+                    .distinct()  // To avoid duplicates in case one restaurant has multiple tables
+                    .collect(Collectors.toList());
+        }
+    }
 }
Index: src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java	(revision 65b6638865a1485e9cc722615973d9fb675b9d84)
+++ src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java	(revision 75f50866bac587cbe5cf2dfb97353279f16a8c82)
@@ -64,5 +64,5 @@
         }
 
-        List<Restaurant> filteredRestaurants = restaurantService.findRestaurantsByDateTimeAndPartySize(parsedDateTime, partySize, search);
+        List<Restaurant> filteredRestaurants = restaurantService.findRestaurantsBySearchParams(parsedDateTime, partySize, search);
 
         return new ResponseEntity<List<Restaurant>>(filteredRestaurants, HttpStatus.OK);
