diff --git a/wine-production/pom.xml b/wine-production/pom.xml
index 9b83f74de3771d58e397c241698cb069fdb43ce7..e8613e4c2253d364a3cf6280c30abe8fc2292694 100644
--- a/wine-production/pom.xml
+++ b/wine-production/pom.xml
@@ -62,6 +62,16 @@
             <artifactId>spring-boot-starter-data-jpa</artifactId>
             <version>3.2.2</version>
         </dependency>
+        <dependency>
+            <groupId>jakarta.validation</groupId>
+            <artifactId>jakarta.validation-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-openfeign-core</artifactId>
+            <version>4.1.1</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/WineProduction.java b/wine-production/src/main/java/cz/muni/fi/pa165/WineProduction.java
index 5948d42bc5e44466d8bceb7a0bc8865480d0214a..382b4bdefecf7f0840e356feee19940da4f64fed 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/WineProduction.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/WineProduction.java
@@ -3,9 +3,11 @@ package cz.muni.fi.pa165;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 
 @EntityScan(basePackages = {"cz.muni.fi.pa165"})
 @SpringBootApplication
+@EnableFeignClients
 public class WineProduction {
     public static void main(String[] args) {
         SpringApplication.run(WineProduction.class, args);
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/client/InventoryManagementClient.java b/wine-production/src/main/java/cz/muni/fi/pa165/client/InventoryManagementClient.java
new file mode 100644
index 0000000000000000000000000000000000000000..13c5b0acbcb2532bb3258a74d3cf1e11678de009
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/client/InventoryManagementClient.java
@@ -0,0 +1,16 @@
+package cz.muni.fi.pa165.client;
+
+import cz.muni.fi.pa165.model.DTO.GrapeDTO;
+import cz.muni.fi.pa165.model.DTO.IngredientDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+
+@FeignClient(name = "InventoryManagementClient", url = "$inventory-management.url")
+public interface InventoryManagementClient {
+    @GetMapping("/ingredient/{name}")
+    IngredientDTO ingredientByName(@PathVariable String name);
+
+    @GetMapping("/grape/{code}")
+    GrapeDTO grapeByCode(@PathVariable String code);
+}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionProcessAPI.java b/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionProcessAPI.java
index 0e8fc40bc0be4642442d53e1c732cf43f6ed6ae1..0a819ec31004b04693b691821f038129f5a3235e 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionProcessAPI.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionProcessAPI.java
@@ -1,7 +1,7 @@
 package cz.muni.fi.pa165.controller;
 
-import cz.muni.fi.pa165.facade.productionProcess.ProductionProcessFacade;
-import cz.muni.fi.pa165.model.DTO.IngredientDTO;
+import cz.muni.fi.pa165.facade.productionprocess.ProductionProcessFacade;
+import cz.muni.fi.pa165.model.DTO.ProductDTO;
 import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -82,4 +82,21 @@ public class ProductionProcessAPI {
             @Parameter(description = "ProductionProcess Id") @PathVariable String id) {
         productionProcessFacade.delete(id);
     }
+
+    @Operation(summary = "Produce Product")
+    @ApiResponses(value = {
+            @ApiResponse(responseCode = "200", description = "Product produced",
+                    content = {@Content(mediaType = "application/json"
+                    )})
+    })
+
+    @PostMapping("/produce/{id}")
+    public ProductDTO produce(
+            @Parameter(description = "ProductionProcess Id") @PathVariable String id) {
+        return productionProcessFacade.produce(id);
+    };
+
+
+
+
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionStepAPI.java b/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionStepAPI.java
index 7c76a3e58d72ae851ad8967a2cefac4f23e9b962..4b29ca21e79158fcc395ece775a1f6ef9bb65cb1 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionStepAPI.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/controller/ProductionStepAPI.java
@@ -1,8 +1,7 @@
 package cz.muni.fi.pa165.controller;
 
 
-import cz.muni.fi.pa165.facade.productionStep.ProductionStepFacade;
-import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
+import cz.muni.fi.pa165.facade.productionstep.ProductionStepFacade;
 import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/Mapper.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/Mapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..28fbf24717ba1b6ad37457fdcff2956d6d868cc4
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/facade/Mapper.java
@@ -0,0 +1,62 @@
+package cz.muni.fi.pa165.facade;
+
+import cz.muni.fi.pa165.model.DAO.IngredientDAO;
+import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
+import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
+import cz.muni.fi.pa165.model.DTO.IngredientDTO;
+import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
+import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class Mapper {
+
+    public IngredientDTO mapToIngredientDTO(IngredientDAO ingredientDAO) {
+        return new IngredientDTO(
+                ingredientDAO.getName(),
+                ingredientDAO.getQuantity(),
+                ingredientDAO.getQuantityUnit()
+        );
+    }
+
+    public List<IngredientDTO> mapToIngredientDTOList(List<IngredientDAO> daoList) {
+        return daoList.stream()
+                .map(this::mapToIngredientDTO)
+                .collect(Collectors.toList());
+    }
+
+    public ProductionProcessDTO mapToProductionProcessDTO(ProductionProcessDAO productionProcessDAO) {
+        return new ProductionProcessDTO(
+                productionProcessDAO.getName(),
+                productionProcessDAO.getProductionSteps(),
+                productionProcessDAO.getDifficulty()
+        );
+    }
+
+    public List<ProductionProcessDTO> mapToProductionProcessDTOList(List<ProductionProcessDAO> daoList) {
+        return daoList.stream()
+                .map(this::mapToProductionProcessDTO)
+                .collect(Collectors.toList());
+    }
+
+    public ProductionStepDTO mapToProductionStepDTO(ProductionStepDAO productionStepDAO) {
+        return new ProductionStepDTO(
+                productionStepDAO.getName(),
+                productionStepDAO.getDuration(),
+                productionStepDAO.getDurationUnit(),
+                productionStepDAO.getIngredients()
+
+        );
+    }
+
+    public List<ProductionStepDTO> mapToProductionStepDTOList(List<ProductionStepDAO> daoList) {
+        return daoList.stream()
+                .map(this::mapToProductionStepDTO)
+                .collect(Collectors.toList());
+    }
+
+
+}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacade.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacade.java
index 9a1a0373b7d8a7b51360f8b53b6182cefa766937..2e392ac852f7b76ce9015c66eb8b52c465cdf9a5 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacade.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacade.java
@@ -1,5 +1,6 @@
 package cz.muni.fi.pa165.facade.ingredient;
 
+import cz.muni.fi.pa165.model.DAO.IngredientDAO;
 import cz.muni.fi.pa165.model.DTO.IngredientDTO;
 
 import java.util.List;
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacadeImpl.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacadeImpl.java
index caa7ea24d13d8d1cf4403c4113ff806f3dce5ed5..cf695c52dbfaad154db6c6dc00dd81b07914d726 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacadeImpl.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/facade/ingredient/IngredientFacadeImpl.java
@@ -1,5 +1,6 @@
 package cz.muni.fi.pa165.facade.ingredient;
 
+import cz.muni.fi.pa165.facade.Mapper;
 import cz.muni.fi.pa165.model.DAO.IngredientDAO;
 import cz.muni.fi.pa165.model.DTO.IngredientDTO;
 import cz.muni.fi.pa165.service.ingredient.IngredientService;
@@ -7,36 +8,39 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
-import java.util.stream.Collectors;
 
 @Service
 public class IngredientFacadeImpl implements IngredientFacade {
     private final IngredientService ingredientService;
 
+    private final Mapper mapper;
+
+
     @Autowired
-    public IngredientFacadeImpl(IngredientService ingredientService) {
+    public IngredientFacadeImpl(IngredientService ingredientService, Mapper mapper) {
         this.ingredientService = ingredientService;
+        this.mapper = mapper;
     }
 
 
     @Override
     public IngredientDTO getById(String id) {
-        return mapToIngredientDTO(ingredientService.getById(id));
+        return mapper.mapToIngredientDTO(ingredientService.getById(id));
     }
 
     @Override
     public IngredientDTO create(IngredientDTO ingredientDTO) {
-        return mapToIngredientDTO(ingredientService.create(ingredientDTO));
+        return mapper.mapToIngredientDTO(ingredientService.create(ingredientDTO));
     }
 
     @Override
     public List<IngredientDTO> getAll() {
-        return mapToDTOList(ingredientService.getAll());
+        return mapper.mapToIngredientDTOList(ingredientService.getAll());
     }
 
     @Override
     public IngredientDTO update(String id, IngredientDTO ingredientDTO) {
-        return mapToIngredientDTO(ingredientService.update(id, ingredientDTO));
+        return mapper.mapToIngredientDTO(ingredientService.update(id, ingredientDTO));
     }
 
     @Override
@@ -44,17 +48,4 @@ public class IngredientFacadeImpl implements IngredientFacade {
         ingredientService.delete(id);
     }
 
-    private IngredientDTO mapToIngredientDTO(IngredientDAO ingredientDAO) {
-        return new IngredientDTO(
-                ingredientDAO.getName(),
-                ingredientDAO.getQuantity(),
-                ingredientDAO.getQuantityUnit()
-        );
-    }
-
-    private List<IngredientDTO> mapToDTOList(List<IngredientDAO> daoList) {
-        return daoList.stream()
-                .map(this::mapToIngredientDTO)
-                .collect(Collectors.toList());
-    }
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacadeImpl.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacadeImpl.java
deleted file mode 100644
index 26712420ae232f1f3cc4ea4e561101ab67cc3f68..0000000000000000000000000000000000000000
--- a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacadeImpl.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package cz.muni.fi.pa165.facade.productionProcess;
-
-import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
-import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
-import cz.muni.fi.pa165.service.productionProcess.ProductionProcessService;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestTemplate;
-
-import java.net.http.HttpHeaders;
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Service
-public class ProductionProcessFacadeImpl implements ProductionProcessFacade {
-
-    private final ProductionProcessService productionProcessService;
-
-
-
-    public ProductionProcessFacadeImpl(ProductionProcessService productionProcessService) {
-        this.productionProcessService = productionProcessService;
-    }
-
-    @Override
-    public ProductionProcessDTO getById(String id) {
-        return mapToProductionProcessDTO(productionProcessService.getById(id));
-    }
-
-    @Override
-    public ProductionProcessDTO create(ProductionProcessDTO productionProcessDTO) {
-        return mapToProductionProcessDTO(productionProcessService.create(productionProcessDTO));
-    }
-
-    @Override
-    public List<ProductionProcessDTO> getAll() {
-        return mapToDTOList(productionProcessService.getAll());
-    }
-
-    @Override
-    public ProductionProcessDTO update(String id, ProductionProcessDTO productionProcessDTO) {
-        return mapToProductionProcessDTO(productionProcessService.update(id, productionProcessDTO));
-    }
-
-    @Override
-    public void delete(String id) {
-        productionProcessService.delete(id);
-    }
-
-
-    private ProductionProcessDTO mapToProductionProcessDTO(ProductionProcessDAO productionProcessDAO) {
-        return new ProductionProcessDTO(
-                productionProcessDAO.getName(),
-                productionProcessDAO.getProductionSteps(),
-                productionProcessDAO.getDifficulty()
-        );
-    }
-
-    private List<ProductionProcessDTO> mapToDTOList(List<ProductionProcessDAO> daoList) {
-        return daoList.stream()
-                .map(this::mapToProductionProcessDTO)
-                .collect(Collectors.toList());
-    }
-
-
-}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacadeImpl.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacadeImpl.java
deleted file mode 100644
index 850286502cfc9a03ee46655caa7b6f490536dda2..0000000000000000000000000000000000000000
--- a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacadeImpl.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package cz.muni.fi.pa165.facade.productionStep;
-
-import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
-import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
-import cz.muni.fi.pa165.service.productionStep.ProductionStepService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-@Service
-public class ProductionStepFacadeImpl implements ProductionStepFacade {
-
-    private final ProductionStepService productionStepService;
-
-    public ProductionStepFacadeImpl(ProductionStepService productionStepService) {
-        this.productionStepService = productionStepService;
-    }
-
-    @Override
-    public ProductionStepDTO getById(String id) {
-        return mapToProductionStepDTO(productionStepService.getById(id));
-    }
-
-    @Override
-    public ProductionStepDTO create(ProductionStepDTO productionStepDTO) {
-        return mapToProductionStepDTO(productionStepService.create(productionStepDTO));
-    }
-
-    @Override
-    public List<ProductionStepDTO> getAll() {
-        return mapToDTOList(productionStepService.getALl());
-    }
-
-    @Override
-    public ProductionStepDTO update(String id, ProductionStepDTO productionStepDTO) {
-        return mapToProductionStepDTO(productionStepService.update(id, productionStepDTO));
-    }
-
-    @Override
-    public void delete(String id) {
-        productionStepService.delete(id);
-
-    }
-
-    private ProductionStepDTO mapToProductionStepDTO(ProductionStepDAO productionStepDAO) {
-        return new ProductionStepDTO(
-                productionStepDAO.getName(),
-                productionStepDAO.getDuration(),
-                productionStepDAO.getDurationUnit(),
-                productionStepDAO.getIngredients()
-
-        );
-    }
-
-    private List<ProductionStepDTO> mapToDTOList(List<ProductionStepDAO> daoList) {
-        return daoList.stream()
-                .map(this::mapToProductionStepDTO)
-                .collect(Collectors.toList());
-    }
-
-}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacade.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacade.java
similarity index 75%
rename from wine-production/src/main/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacade.java
rename to wine-production/src/main/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacade.java
index b31e521e280b784f3b1f27560c39d6633c0a6ded..8706cb6686d9be7cfd0287ed684abdb9290b4238 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacade.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacade.java
@@ -1,5 +1,6 @@
-package cz.muni.fi.pa165.facade.productionProcess;
+package cz.muni.fi.pa165.facade.productionprocess;
 
+import cz.muni.fi.pa165.model.DTO.ProductDTO;
 import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
 
 import java.util.List;
@@ -14,6 +15,7 @@ public interface ProductionProcessFacade {
 
     ProductionProcessDTO update(String id, ProductionProcessDTO productionProcessDTO);
 
+    ProductDTO produce(String id);
     void delete(String id);
 
 
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacadeImpl.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacadeImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..c7d28d0fd7c7730e6e85c2baa328f72983d07430
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacadeImpl.java
@@ -0,0 +1,109 @@
+package cz.muni.fi.pa165.facade.productionprocess;
+
+import cz.muni.fi.pa165.client.InventoryManagementClient;
+import cz.muni.fi.pa165.facade.Mapper;
+import cz.muni.fi.pa165.facade.ingredient.IngredientFacade;
+import cz.muni.fi.pa165.facade.productionstep.ProductionStepFacade;
+import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
+import cz.muni.fi.pa165.model.DTO.IngredientDTO;
+import cz.muni.fi.pa165.model.DTO.ProductDTO;
+import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
+import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
+import cz.muni.fi.pa165.service.productionprocess.ProductionProcessService;
+import cz.muni.fi.pa165.service.productionstep.ProductionStepService;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class ProductionProcessFacadeImpl implements ProductionProcessFacade {
+
+    private final ProductionProcessService productionProcessService;
+    private final InventoryManagementClient inventoryManagementClient;
+    private final Mapper mapper;
+
+    public ProductionProcessFacadeImpl(ProductionProcessService productionProcessService,InventoryManagementClient inventoryManagementClient, Mapper mapper) {
+        this.productionProcessService = productionProcessService;
+        this.inventoryManagementClient = inventoryManagementClient;
+        this.mapper = mapper;
+    }
+
+    @Override
+    public ProductionProcessDTO getById(String id) {
+        return mapper.mapToProductionProcessDTO(productionProcessService.getById(id));
+    }
+
+    @Override
+    public ProductionProcessDTO create(ProductionProcessDTO productionProcessDTO) {
+        return mapper.mapToProductionProcessDTO(productionProcessService.create(productionProcessDTO));
+    }
+
+    @Override
+    public List<ProductionProcessDTO> getAll() {
+        return mapper.mapToProductionProcessDTOList(productionProcessService.getAll());
+    }
+
+    @Override
+    public ProductionProcessDTO update(String id, ProductionProcessDTO productionProcessDTO) {
+        return mapper.mapToProductionProcessDTO(productionProcessService.update(id, productionProcessDTO));
+    }
+    @Override
+    public void delete(String id) {
+        productionProcessService.delete(id);
+    }
+    @Override
+    public ProductDTO produce(String id){
+        ProductionProcessDTO productionProcessDTO = mapper.mapToProductionProcessDTO(productionProcessService.getById(id));
+        List<ProductionStepDTO> productionSteps = mapper.mapToProductionStepDTOList(productionProcessDTO.getProductionSteps());
+        Map<String, List<IngredientDTO>> productionMap = createProductionMap(productionSteps);
+
+        if(productionPossible(productionMap)){
+            productionProcessService.produce(productionMap);
+        }
+        return new ProductDTO();
+    }
+
+    private Map<String, List<IngredientDTO>> createProductionMap(List<ProductionStepDTO> productionStepDTOS) {
+        Map<String, List<IngredientDTO>> productionMap = new HashMap<>();
+        for (ProductionStepDTO step : productionStepDTOS) {
+            productionMap.put(step.getName(), mapper.mapToIngredientDTOList(step.getIngredients()));
+        }
+        return productionMap;
+    }
+
+    private Boolean productionPossible (Map<String, List<IngredientDTO>> productionMap){
+        for (Map.Entry<String, List<IngredientDTO>> entry : productionMap.entrySet()) {
+            String productionStepName = entry.getKey();
+            List<IngredientDTO> requiredIngredients = entry.getValue();
+
+            for (IngredientDTO requiredIngredient : requiredIngredients) {
+                IngredientDTO availableIngredient = fetchIngredientByName(requiredIngredient.getName());
+                if (availableIngredient == null || !ingredientAvailable(requiredIngredient, availableIngredient)) {
+                    System.out.println("Required ingredient " + requiredIngredient.getName() + " for production step " +
+                            productionStepName + " is not available.");
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    private Boolean ingredientAvailable(IngredientDTO required, IngredientDTO provided){
+        return required.getQuantity() <= provided.getQuantity();
+    }
+
+    private IngredientDTO fetchIngredientByName(String name){
+        return inventoryManagementClient.ingredientByName(name);
+    }
+
+
+
+
+
+
+
+
+}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacade.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacade.java
similarity index 73%
rename from wine-production/src/main/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacade.java
rename to wine-production/src/main/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacade.java
index 123cc4932127662556fe87f5147c7d3c71cfd491..615bd86fcaf9b33722fba69416d5717a15fdb643 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacade.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacade.java
@@ -1,8 +1,10 @@
-package cz.muni.fi.pa165.facade.productionStep;
+package cz.muni.fi.pa165.facade.productionstep;
 
+import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
 import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 public interface ProductionStepFacade {
     ProductionStepDTO getById(String id);
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacadeImpl.java b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacadeImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca4ee287411a247539f86df0d9e8787e1623dd4b
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacadeImpl.java
@@ -0,0 +1,49 @@
+package cz.muni.fi.pa165.facade.productionstep;
+
+import cz.muni.fi.pa165.facade.Mapper;
+import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
+import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
+import cz.muni.fi.pa165.service.productionstep.ProductionStepService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class ProductionStepFacadeImpl implements ProductionStepFacade {
+
+    private final ProductionStepService productionStepService;
+
+    private final Mapper mapper;
+
+    public ProductionStepFacadeImpl(ProductionStepService productionStepService, Mapper mapper) {
+        this.productionStepService = productionStepService;
+        this.mapper = mapper;
+    }
+
+    @Override
+    public ProductionStepDTO getById(String id) {
+        return mapper.mapToProductionStepDTO(productionStepService.getById(id));
+    }
+
+    @Override
+    public ProductionStepDTO create(ProductionStepDTO productionStepDTO) {
+        return mapper.mapToProductionStepDTO(productionStepService.create(productionStepDTO));
+    }
+
+    @Override
+    public List<ProductionStepDTO> getAll() {
+        return mapper.mapToProductionStepDTOList(productionStepService.getALl());
+    }
+
+    @Override
+    public ProductionStepDTO update(String id, ProductionStepDTO productionStepDTO) {
+        return mapper.mapToProductionStepDTO(productionStepService.update(id, productionStepDTO));
+    }
+
+    @Override
+    public void delete(String id) {
+        productionStepService.delete(id);
+    }
+
+}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductDAO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductDAO.java
new file mode 100644
index 0000000000000000000000000000000000000000..ecfd4fe0f99e00a82e37b01e126b0df0f0c92f0c
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductDAO.java
@@ -0,0 +1,35 @@
+package cz.muni.fi.pa165.model.DAO;
+
+import jakarta.persistence.*;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+
+@Entity
+@Setter
+@Getter
+@EqualsAndHashCode
+@ToString
+@Table(name = "product")
+public class ProductDAO {
+    @Id
+    @GeneratedValue(strategy = GenerationType.UUID)
+    String id;
+    @Column(name = "code")
+    private String code;
+    @Column(name = "name")
+    private String name;
+    @Column(name = "description")
+    private String description;
+    @Column(name = "quantity")
+    private int quantity;
+    @Column(name = "quantityUnit")
+    private QuantityUnit quantityUnit;
+    @Column(name = "price")
+    private double price;
+
+}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionProcessDAO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionProcessDAO.java
index 19c95907697be69cd981105a9caa6be5073c5e6e..747fb0bd314c3cd4a394fde66a5bd5561b79ec6b 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionProcessDAO.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionProcessDAO.java
@@ -1,11 +1,6 @@
 package cz.muni.fi.pa165.model.DAO;
 
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
-import jakarta.persistence.OneToMany;
-import jakarta.persistence.Table;
+import jakarta.persistence.*;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -24,8 +19,10 @@ public class ProductionProcessDAO {
     @Id
     @GeneratedValue(strategy = GenerationType.UUID)
     private String id;
+    @Column(name = "name")
     private String name;
-    @OneToMany
+    @OneToMany(fetch = FetchType.LAZY, mappedBy = "productionProcess")
     private List<ProductionStepDAO> productionSteps;
+    @Column(name = "difficulty")
     private Difficulty difficulty;
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionStepDAO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionStepDAO.java
index 85d14f5c7f1e06dfa834258c677b943d6987e4aa..115085f85fb779ea6aba375976cbc5ba60c1bb82 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionStepDAO.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DAO/ProductionStepDAO.java
@@ -1,11 +1,6 @@
 package cz.muni.fi.pa165.model.DAO;
 
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
-import jakarta.persistence.OneToMany;
-import jakarta.persistence.Table;
+import jakarta.persistence.*;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
@@ -23,9 +18,12 @@ public class ProductionStepDAO {
     @Id
     @GeneratedValue(strategy = GenerationType.UUID)
     private String id;
+    @Column(name = "name")
     private String name;
+    @Column(name = "description")
     private Double duration;
-    @OneToMany
+    @OneToMany(fetch = FetchType.LAZY, mappedBy = "productionStep")
     private List<IngredientDAO> ingredients;
+    @Column(name = "durationUnit")
     private DurationUnit durationUnit;
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/GrapeDTO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/GrapeDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..72f9e590e4c3bb2bff65bd317528ea6ae850b6bb
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/GrapeDTO.java
@@ -0,0 +1,24 @@
+package cz.muni.fi.pa165.model.DTO;
+
+import cz.muni.fi.pa165.model.DAO.QuantityUnit;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.*;
+
+@Getter
+@Setter
+@EqualsAndHashCode
+@ToString
+@AllArgsConstructor
+public class GrapeDTO {
+    @NotNull
+    private String code;
+    @NotNull
+    private int quantity;
+    @NotNull
+    private QuantityUnit quantityUnit;
+    @NotNull
+    private String name;
+    @NotNull
+    private String description;
+}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/IngredientDTO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/IngredientDTO.java
index b747b9a4d1a5a58e6debe559bc38f076074cd126..b6ca8e4d12593aabfe3f9d979afd407098625324 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/IngredientDTO.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/IngredientDTO.java
@@ -1,25 +1,22 @@
 package cz.muni.fi.pa165.model.DTO;
 
 import cz.muni.fi.pa165.model.DAO.QuantityUnit;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+import lombok.*;
 
 @Getter
 @Setter
 @EqualsAndHashCode
 @ToString
+@AllArgsConstructor
 public class IngredientDTO {
-    private String name;
 
+    @NotBlank
+    @Size(max = 30)
+    private String name;
+    @NotBlank
     private Double quantity;
-
+    @NotBlank
     private QuantityUnit quantityUnit;
-
-    public IngredientDTO(String name, Double quantity, QuantityUnit quantityUnit) {
-        this.name = name;
-        this.quantity = quantity;
-        this.quantityUnit = quantityUnit;
-    }
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductDTO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff102cf6ab68cedf20b955d99a7926573d2d97e0
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductDTO.java
@@ -0,0 +1,33 @@
+package cz.muni.fi.pa165.model.DTO;
+
+
+import cz.muni.fi.pa165.model.DAO.QuantityUnit;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.*;
+
+@Getter
+@Setter
+@EqualsAndHashCode
+@ToString
+@AllArgsConstructor
+public class ProductDTO {
+    @NotNull
+    @Size(min = 1, max = 100)
+    private String code;
+    @NotNull
+    @Size(max = 30)
+    private String name;
+    @NotNull
+    private String description;
+    @NotNull
+    private int quantity;
+    @NotNull
+    private QuantityUnit quantityUnit;
+    @NotNull
+    private double price;
+
+    public ProductDTO() {
+    }
+
+}
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionProcessDTO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionProcessDTO.java
index c6e72d9b48cbb0a9ea977bb7999418cbe743ccd8..27b99db1eadeb1955a549a427b30eee14e6d14d3 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionProcessDTO.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionProcessDTO.java
@@ -3,10 +3,9 @@ package cz.muni.fi.pa165.model.DTO;
 import cz.muni.fi.pa165.model.DAO.Difficulty;
 import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
 import jakarta.persistence.OneToMany;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+import lombok.*;
 
 import java.util.List;
 
@@ -14,17 +13,17 @@ import java.util.List;
 @Setter
 @EqualsAndHashCode
 @ToString
+@AllArgsConstructor
 public class ProductionProcessDTO {
+    @NotBlank
+    @Size(max = 30)
     private String name;
     @OneToMany
     private List<ProductionStepDAO> productionSteps;
+    @NotBlank
     private Difficulty difficulty;
 
-    public ProductionProcessDTO(String name, List<ProductionStepDAO> productionSteps, Difficulty difficulty) {
-        this.name = name;
-        this.productionSteps = productionSteps;
-        this.difficulty = difficulty;
-    }
+
 
 
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionStepDTO.java b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionStepDTO.java
index ef86611416f2a5b60e6393ac041aafffcd99390c..45eb6ac30f6c9a8ea6d1bacdddacfdabd297f0c0 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionStepDTO.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/model/DTO/ProductionStepDTO.java
@@ -2,10 +2,10 @@ package cz.muni.fi.pa165.model.DTO;
 
 import cz.muni.fi.pa165.model.DAO.DurationUnit;
 import cz.muni.fi.pa165.model.DAO.IngredientDAO;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
+import jakarta.persistence.OneToMany;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+import lombok.*;
 
 import java.util.List;
 
@@ -14,17 +14,17 @@ import java.util.List;
 @Setter
 @EqualsAndHashCode
 @ToString
+@AllArgsConstructor
 public class ProductionStepDTO {
+    @NotBlank
+    @Size(max = 30)
     private String name;
+    @NotBlank
     private Double duration;
+    @NotBlank
     private DurationUnit durationUnit;
+    @OneToMany
     private List<IngredientDAO> ingredients;
 
-    public ProductionStepDTO(String name, Double duration, DurationUnit durationUnit, List<IngredientDAO> ingredients) {
-        this.name = name;
-        this.duration = duration;
-        this.durationUnit = durationUnit;
-        this.ingredients = ingredients;
-    }
 
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/repository/ProductRepository.java b/wine-production/src/main/java/cz/muni/fi/pa165/repository/ProductRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..169159d3aab55cf7c981e7bf8e7d775844605a04
--- /dev/null
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/repository/ProductRepository.java
@@ -0,0 +1,10 @@
+package cz.muni.fi.pa165.repository;
+
+import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface ProductRepository extends JpaRepository<ProductionStepDAO, String> {
+}
\ No newline at end of file
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessService.java b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessService.java
similarity index 65%
rename from wine-production/src/main/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessService.java
rename to wine-production/src/main/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessService.java
index 5511039e04ac12841f6c1b6ad087ee2062f796af..fa6f0c30bd1c51c08b8283f37890c49009eb0174 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessService.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessService.java
@@ -1,9 +1,12 @@
-package cz.muni.fi.pa165.service.productionProcess;
+package cz.muni.fi.pa165.service.productionprocess;
 
+import cz.muni.fi.pa165.model.DAO.ProductDAO;
 import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
+import cz.muni.fi.pa165.model.DTO.IngredientDTO;
 import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
 
 import java.util.List;
+import java.util.Map;
 
 public interface ProductionProcessService {
     ProductionProcessDAO getById(String id);
@@ -14,7 +17,9 @@ public interface ProductionProcessService {
 
     ProductionProcessDAO update(String id, ProductionProcessDTO productionProcessDTO);
 
+
     void delete(String id);
 
+    ProductDAO produce(Map<String, List<IngredientDTO>> productionMap);
 
 }
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessServiceImpl.java b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessServiceImpl.java
similarity index 81%
rename from wine-production/src/main/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessServiceImpl.java
rename to wine-production/src/main/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessServiceImpl.java
index 4b95fc29c3cc138986aa67ed14637db833b52e1f..76ffd69caffb5a5a9d0f768f757a8b7578b53d5a 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessServiceImpl.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessServiceImpl.java
@@ -1,21 +1,30 @@
-package cz.muni.fi.pa165.service.productionProcess;
+package cz.muni.fi.pa165.service.productionprocess;
 
+import cz.muni.fi.pa165.model.DAO.ProductDAO;
 import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
+import cz.muni.fi.pa165.model.DTO.IngredientDTO;
 import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
+import cz.muni.fi.pa165.repository.ProductRepository;
 import cz.muni.fi.pa165.repository.ProductionProcessRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 @Service
+
 public class ProductionProcessServiceImpl implements ProductionProcessService {
 
     private final ProductionProcessRepository productionProcessRepository;
 
+    private final ProductRepository productRepository;
+
+
     @Autowired
-    public ProductionProcessServiceImpl(ProductionProcessRepository productionProcessRepository) {
+    public ProductionProcessServiceImpl(ProductionProcessRepository productionProcessRepository, ProductRepository productRepository) {
         this.productionProcessRepository = productionProcessRepository;
+        this.productRepository = productRepository;
     }
 
 
@@ -49,6 +58,11 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
         productionProcessRepository.deleteById(id);
     }
 
+    @Override
+    public ProductDAO produce(Map<String, List<IngredientDTO>> productionMap) {
+
+        return new ProductDAO();
+    }
 
     private ProductionProcessDAO mapToProductionProcessDAO(ProductionProcessDTO productionProcessDTO) {
         ProductionProcessDAO productionProcessDAO = new ProductionProcessDAO();
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionStep/ProductionStepService.java b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionstep/ProductionStepService.java
similarity index 89%
rename from wine-production/src/main/java/cz/muni/fi/pa165/service/productionStep/ProductionStepService.java
rename to wine-production/src/main/java/cz/muni/fi/pa165/service/productionstep/ProductionStepService.java
index 399c6e6f857d4deb16fe68c5546fd5f52c53949b..9f9ce299f8f512892ede8f2f659ede5611f3d27a 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionStep/ProductionStepService.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionstep/ProductionStepService.java
@@ -1,4 +1,4 @@
-package cz.muni.fi.pa165.service.productionStep;
+package cz.muni.fi.pa165.service.productionstep;
 
 import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
 import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
diff --git a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionStep/ProductionStepServiceImpl.java b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionstep/ProductionStepServiceImpl.java
similarity index 95%
rename from wine-production/src/main/java/cz/muni/fi/pa165/service/productionStep/ProductionStepServiceImpl.java
rename to wine-production/src/main/java/cz/muni/fi/pa165/service/productionstep/ProductionStepServiceImpl.java
index 6202f3b086aecab8d39dbbd4b664005017083c6b..2012f2d7bd5ee31f917ab6f224c143ad2a72d6bd 100644
--- a/wine-production/src/main/java/cz/muni/fi/pa165/service/productionStep/ProductionStepServiceImpl.java
+++ b/wine-production/src/main/java/cz/muni/fi/pa165/service/productionstep/ProductionStepServiceImpl.java
@@ -1,6 +1,5 @@
-package cz.muni.fi.pa165.service.productionStep;
+package cz.muni.fi.pa165.service.productionstep;
 
-import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
 import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
 import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
 import cz.muni.fi.pa165.repository.ProductionStepRepository;
diff --git a/wine-production/src/main/resources/application.yml b/wine-production/src/main/resources/application.yml
index 9e5d4f3d88bc6fe9c0b1c37aec9b198c9e05b67f..8b4c183b9739bf94246eba98041f959ee81ca4e7 100644
--- a/wine-production/src/main/resources/application.yml
+++ b/wine-production/src/main/resources/application.yml
@@ -10,3 +10,6 @@ spring:
     generate-ddl: true
     hibernate:
       ddl-auto: update
+
+inventory-management:
+  url: localhost:8082
\ No newline at end of file
diff --git a/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionProcessAPITest.java b/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionProcessAPITest.java
index 3ac09068a0c5e81d89623b3669c7036fb758b83e..66a8561c207eeced6eeb1e7a8524a6e0ee8915f6 100644
--- a/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionProcessAPITest.java
+++ b/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionProcessAPITest.java
@@ -1,7 +1,6 @@
 package cz.muni.fi.pa165.controller;
 
-import cz.muni.fi.pa165.controller.ProductionProcessAPI;
-import cz.muni.fi.pa165.facade.productionProcess.ProductionProcessFacade;
+import cz.muni.fi.pa165.facade.productionprocess.ProductionProcessFacade;
 import cz.muni.fi.pa165.model.DAO.Difficulty;
 import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
 import org.junit.jupiter.api.BeforeEach;
diff --git a/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionStepAPITest.java b/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionStepAPITest.java
index e7080116e066bd5ec0d3e5a382d511d65434660e..4aecb411fc1fd41b85b08b2d66b463f7132ed634 100644
--- a/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionStepAPITest.java
+++ b/wine-production/src/test/java/cz/muni/fi/pa165/controller/ProductionStepAPITest.java
@@ -1,7 +1,6 @@
 package cz.muni.fi.pa165.controller;
 
-import cz.muni.fi.pa165.controller.ProductionStepAPI;
-import cz.muni.fi.pa165.facade.productionStep.ProductionStepFacade;
+import cz.muni.fi.pa165.facade.productionstep.ProductionStepFacade;
 import cz.muni.fi.pa165.model.DAO.DurationUnit;
 import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
 import org.junit.jupiter.api.BeforeEach;
diff --git a/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacadeImplTest.java b/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacadeImplTest.java
similarity index 96%
rename from wine-production/src/test/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacadeImplTest.java
rename to wine-production/src/test/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacadeImplTest.java
index 7e292872aa87de4b36d547edf7aaee2b8048a84c..0453ea9f6f3a6ab9d94ae15e78136fdd36f5c293 100644
--- a/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionProcess/ProductionProcessFacadeImplTest.java
+++ b/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionprocess/ProductionProcessFacadeImplTest.java
@@ -1,9 +1,9 @@
-package cz.muni.fi.pa165.facade.productionProcess;
+package cz.muni.fi.pa165.facade.productionprocess;
 import cz.muni.fi.pa165.model.DAO.Difficulty;
 import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
 import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
 import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
-import cz.muni.fi.pa165.service.productionProcess.ProductionProcessService;
+import cz.muni.fi.pa165.service.productionprocess.ProductionProcessService;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
diff --git a/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacadeImplTest.java b/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacadeImplTest.java
similarity index 95%
rename from wine-production/src/test/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacadeImplTest.java
rename to wine-production/src/test/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacadeImplTest.java
index 979d7f77b4a946172722df6c995d524f623b4bfa..a1fd5322e86f0e30943715809917495ee72ed5bc 100644
--- a/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionStep/ProductionStepFacadeImplTest.java
+++ b/wine-production/src/test/java/cz/muni/fi/pa165/facade/productionstep/ProductionStepFacadeImplTest.java
@@ -1,9 +1,9 @@
-package cz.muni.fi.pa165.facade.productionStep;
+package cz.muni.fi.pa165.facade.productionstep;
 
 import cz.muni.fi.pa165.model.DAO.DurationUnit;
 import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;
 import cz.muni.fi.pa165.model.DTO.ProductionStepDTO;
-import cz.muni.fi.pa165.service.productionStep.ProductionStepService;
+import cz.muni.fi.pa165.service.productionstep.ProductionStepService;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
diff --git a/wine-production/src/test/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessServiceImplTest.java b/wine-production/src/test/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessServiceImplTest.java
similarity index 95%
rename from wine-production/src/test/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessServiceImplTest.java
rename to wine-production/src/test/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessServiceImplTest.java
index 1d0f6ee8d2704320d6197e86b05292eed85e5c9d..522bcb8c4b754fac697b11317a6205824ebd0834 100644
--- a/wine-production/src/test/java/cz/muni/fi/pa165/service/productionProcess/ProductionProcessServiceImplTest.java
+++ b/wine-production/src/test/java/cz/muni/fi/pa165/service/productionprocess/ProductionProcessServiceImplTest.java
@@ -1,8 +1,7 @@
-package cz.muni.fi.pa165.service.productionProcess;
+package cz.muni.fi.pa165.service.productionprocess;
 
 import cz.muni.fi.pa165.model.DAO.Difficulty;
 import cz.muni.fi.pa165.model.DAO.ProductionProcessDAO;
-import cz.muni.fi.pa165.model.DAO.QuantityUnit;
 import cz.muni.fi.pa165.model.DTO.ProductionProcessDTO;
 import cz.muni.fi.pa165.repository.ProductionProcessRepository;
 import org.junit.jupiter.api.BeforeEach;
diff --git a/wine-production/src/test/java/cz/muni/fi/pa165/service/productionStep/ProductionStepServiceImplTest.java b/wine-production/src/test/java/cz/muni/fi/pa165/service/productionstep/ProductionStepServiceImplTest.java
similarity index 97%
rename from wine-production/src/test/java/cz/muni/fi/pa165/service/productionStep/ProductionStepServiceImplTest.java
rename to wine-production/src/test/java/cz/muni/fi/pa165/service/productionstep/ProductionStepServiceImplTest.java
index 551805332f8ec5142fa41a7dcf8ba958e6c57605..5049e5aeab1c2417c836761bddbe6d6427c56895 100644
--- a/wine-production/src/test/java/cz/muni/fi/pa165/service/productionStep/ProductionStepServiceImplTest.java
+++ b/wine-production/src/test/java/cz/muni/fi/pa165/service/productionstep/ProductionStepServiceImplTest.java
@@ -1,4 +1,4 @@
-package cz.muni.fi.pa165.service.productionStep;
+package cz.muni.fi.pa165.service.productionstep;
 
 import cz.muni.fi.pa165.model.DAO.DurationUnit;
 import cz.muni.fi.pa165.model.DAO.ProductionStepDAO;