Index: trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java	(revision eed0bf860deec9614c6d4891e655270e2bb3b8ab)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java	(revision 188ee53d7e92cd841a2f812afa7a47793c1280f2)
@@ -10,10 +10,10 @@
 public interface LocationService {
     List<Location> findLocationsFromCity(String locName, String companion, List<String> categories);
+    List<Location> findLocationsFromCountry (String locName, String companion,String region, List<String> categories );
     List<Location> findAll();
     Location getById(Long id);
-    List<Location> findLocationsFromCountry (String locName, String companion,String region, List<String> categories );
     List<Location> scheduleLocations(String locName, String companion,String region, List<String> categories, int numberOfDays);
     Optional<Location> findById(Long id);
-
-    List<Location> findLocations(Long locationId, Long companionId, Long lengthOfStay, String categoryIds);
+    List<Location> findLocationsFromCityForm(Long cityId, Long companionId, Long lengthOfStay, String categoryIds);
+    List<Location> findLocationsFromRegionForm(Long regionId, Long companionId, Long lengthOfStay, String categoryIds);
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java	(revision eed0bf860deec9614c6d4891e655270e2bb3b8ab)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java	(revision 188ee53d7e92cd841a2f812afa7a47793c1280f2)
@@ -50,5 +50,5 @@
 
     @Override
-    public List<Location> findLocations(Long locationId, Long companionId, Long lengthOfStay, String categoryIds) {
+    public List<Location> findLocationsFromCityForm(Long cityId, Long companionId, Long lengthOfStay, String categoryIds) {
         List<Long> categories = null;
         if(categoryIds != null && !categoryIds.isEmpty()){
@@ -56,7 +56,56 @@
             categories = ids.stream().map(Long::valueOf).collect(Collectors.toList());
         }
-        List<Location> foundLocations = locationRepository.findLocationsFromForm(locationId, companionId, categories);
-        return foundLocations;
+        Long maxMinutesPerDay = lengthOfStay *6 * 60;
+        int minutesPerDay = 0;
+        List<Location> citylocations = this.locationRepository.findLocationsFromCityForm(cityId, companionId, categories);
+        List<Location> newList = new ArrayList<>();
+        int listSize = citylocations.size();
+
+        while(minutesPerDay < maxMinutesPerDay ){
+            for(Location l: citylocations) {
+                if (minutesPerDay < maxMinutesPerDay && l.getDuration() + minutesPerDay <= maxMinutesPerDay && listSize != 0) {
+                    newList.add(l);
+                    listSize --;
+                }
+                minutesPerDay += l.getDuration();
+                if (minutesPerDay > maxMinutesPerDay) {
+                    break;
+                }
+            }
+        }
+
+        List<Location> foundLocations = locationRepository.findLocationsFromCityForm(cityId, companionId, categories);
+        return newList;
     }
+
+    @Override
+    public List<Location> findLocationsFromRegionForm(Long regionId, Long companionId, Long lengthOfStay, String categoryIds) {
+        List<Long> categories = null;
+        if(categoryIds != null && !categoryIds.isEmpty()){
+            List<String> ids = Arrays.asList(categoryIds.split(","));
+            categories = ids.stream().map(Long::valueOf).collect(Collectors.toList());
+        }
+        Long maxMinutesPerDay = lengthOfStay *6 * 60;
+        int minutesPerDay = 0;
+        List<Location> countryLocations = this.locationRepository.findLocationsFromRegionForm(regionId, companionId, categories);
+        List<Location> newList = new ArrayList<>();
+        int listCountrySize = countryLocations.size();
+
+            while(minutesPerDay < maxMinutesPerDay){
+                for(Location l: countryLocations) {
+                    if (minutesPerDay < maxMinutesPerDay && l.getDuration() + minutesPerDay <= maxMinutesPerDay && listCountrySize != 0) {
+                        newList.add(l);
+                        listCountrySize --;
+                    }
+                    minutesPerDay += l.getDuration();
+                    if (minutesPerDay > maxMinutesPerDay) {
+                        break;
+                    }
+                }
+
+        }
+        return newList;
+    }
+
 
     @Override
