diff --git a/src/main/java/com/example/productaffinity/domain/port/incomming/GetAffinityProductsUC.java b/src/main/java/com/example/productaffinity/domain/port/incomming/GetAffinityProductsUC.java new file mode 100644 index 0000000..82fa514 --- /dev/null +++ b/src/main/java/com/example/productaffinity/domain/port/incomming/GetAffinityProductsUC.java @@ -0,0 +1,11 @@ +package com.example.productaffinity.domain.port.incomming; + +import com.example.productaffinity.domain.model.Product; +import reactor.core.publisher.Mono; + +import java.util.List; + +// Input Port for resolving similar products to a requested product +public interface GetAffinityProductsUC { + Mono> getAffinityProducts(String productId); +} diff --git a/src/main/java/com/example/productaffinity/domain/port/outcoming/AffinityProductsIdsPort.java b/src/main/java/com/example/productaffinity/domain/port/outcoming/AffinityProductsIdsPort.java new file mode 100644 index 0000000..5225f71 --- /dev/null +++ b/src/main/java/com/example/productaffinity/domain/port/outcoming/AffinityProductsIdsPort.java @@ -0,0 +1,4 @@ +package com.example.productaffinity.domain.port.outcoming; + +public class AffinityProductsIdsPort { +} diff --git a/src/main/java/com/example/productaffinity/domain/port/outcoming/ProductDetailsPort.java b/src/main/java/com/example/productaffinity/domain/port/outcoming/ProductDetailsPort.java new file mode 100644 index 0000000..2e2fcd8 --- /dev/null +++ b/src/main/java/com/example/productaffinity/domain/port/outcoming/ProductDetailsPort.java @@ -0,0 +1,9 @@ +package com.example.productaffinity.domain.port.outcoming; + +import reactor.core.publisher.Mono; + +import java.util.Collection; + +public interface ProductDetailsPort { + Mono> findAffinityProductIds(String productId); +} diff --git a/src/main/java/com/example/productaffinity/domain/service/SimilarProductsService.java b/src/main/java/com/example/productaffinity/domain/service/SimilarProductsService.java new file mode 100644 index 0000000..f166806 --- /dev/null +++ b/src/main/java/com/example/productaffinity/domain/service/SimilarProductsService.java @@ -0,0 +1,20 @@ +package com.example.productaffinity.domain.service; + +import com.example.productaffinity.domain.model.Product; +import com.example.productaffinity.domain.port.incomming.GetAffinityProductsUC; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import java.util.List; + +@Service +public class SimilarProductsService implements GetAffinityProductsUC { + + public SimilarProductsService() { + } + + @Override + public Mono> getAffinityProducts(String productId) { + return null; + } +}