diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/OrderPort.java b/product-order-service/src/main/java/com/example/productorderservice/order/OrderPort.java deleted file mode 100644 index 7ba1c063..00000000 --- a/product-order-service/src/main/java/com/example/productorderservice/order/OrderPort.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.productorderservice.order; - -import com.example.productorderservice.product.Product; - -interface OrderPort { - Product getProductById(Long productId); - - void save(Order order); -} diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/OrderAdapter.java b/product-order-service/src/main/java/com/example/productorderservice/order/adapter/OrderAdapter.java similarity index 69% rename from product-order-service/src/main/java/com/example/productorderservice/order/OrderAdapter.java rename to product-order-service/src/main/java/com/example/productorderservice/order/adapter/OrderAdapter.java index 6defa83a..3171bc0d 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/order/OrderAdapter.java +++ b/product-order-service/src/main/java/com/example/productorderservice/order/adapter/OrderAdapter.java @@ -1,7 +1,9 @@ -package com.example.productorderservice.order; +package com.example.productorderservice.order.adapter; -import com.example.productorderservice.product.Product; -import com.example.productorderservice.product.ProductRepository; +import com.example.productorderservice.order.application.port.OrderPort; +import com.example.productorderservice.order.domain.Order; +import com.example.productorderservice.product.domain.Product; +import com.example.productorderservice.product.adapter.ProductRepository; import org.springframework.stereotype.Component; @Component diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/OrderRepository.java b/product-order-service/src/main/java/com/example/productorderservice/order/adapter/OrderRepository.java similarity index 63% rename from product-order-service/src/main/java/com/example/productorderservice/order/OrderRepository.java rename to product-order-service/src/main/java/com/example/productorderservice/order/adapter/OrderRepository.java index 5b4e68c9..aa16ccfb 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/order/OrderRepository.java +++ b/product-order-service/src/main/java/com/example/productorderservice/order/adapter/OrderRepository.java @@ -1,5 +1,6 @@ -package com.example.productorderservice.order; +package com.example.productorderservice.order.adapter; +import com.example.productorderservice.order.domain.Order; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/OrderController.java b/product-order-service/src/main/java/com/example/productorderservice/order/application/controller/OrderController.java similarity index 76% rename from product-order-service/src/main/java/com/example/productorderservice/order/OrderController.java rename to product-order-service/src/main/java/com/example/productorderservice/order/application/controller/OrderController.java index b49c672a..4e32952c 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/order/OrderController.java +++ b/product-order-service/src/main/java/com/example/productorderservice/order/application/controller/OrderController.java @@ -1,5 +1,7 @@ -package com.example.productorderservice.order; +package com.example.productorderservice.order.application.controller; +import com.example.productorderservice.order.application.service.CreateOrderRequest; +import com.example.productorderservice.order.application.service.OrderService; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/application/port/OrderPort.java b/product-order-service/src/main/java/com/example/productorderservice/order/application/port/OrderPort.java new file mode 100644 index 00000000..a697574d --- /dev/null +++ b/product-order-service/src/main/java/com/example/productorderservice/order/application/port/OrderPort.java @@ -0,0 +1,10 @@ +package com.example.productorderservice.order.application.port; + +import com.example.productorderservice.order.domain.Order; +import com.example.productorderservice.product.domain.Product; + +public interface OrderPort { + Product getProductById(Long productId); + + void save(Order order); +} diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/CreateOrderRequest.java b/product-order-service/src/main/java/com/example/productorderservice/order/application/service/CreateOrderRequest.java similarity index 54% rename from product-order-service/src/main/java/com/example/productorderservice/order/CreateOrderRequest.java rename to product-order-service/src/main/java/com/example/productorderservice/order/application/service/CreateOrderRequest.java index 471bacd3..cc8f9634 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/order/CreateOrderRequest.java +++ b/product-order-service/src/main/java/com/example/productorderservice/order/application/service/CreateOrderRequest.java @@ -1,9 +1,9 @@ -package com.example.productorderservice.order; +package com.example.productorderservice.order.application.service; import org.springframework.util.Assert; -record CreateOrderRequest(Long productId, int quantity) { - CreateOrderRequest { +public record CreateOrderRequest(Long productId, int quantity) { + public CreateOrderRequest { Assert.notNull(productId, "상품 ID는 필수입니다."); Assert.isTrue(quantity > 0, "수량은 0보다 커야 합니다."); } diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/OrderService.java b/product-order-service/src/main/java/com/example/productorderservice/order/application/service/OrderService.java similarity index 66% rename from product-order-service/src/main/java/com/example/productorderservice/order/OrderService.java rename to product-order-service/src/main/java/com/example/productorderservice/order/application/service/OrderService.java index e72e81e4..d4f2b51c 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/order/OrderService.java +++ b/product-order-service/src/main/java/com/example/productorderservice/order/application/service/OrderService.java @@ -1,6 +1,8 @@ -package com.example.productorderservice.order; +package com.example.productorderservice.order.application.service; -import com.example.productorderservice.product.Product; +import com.example.productorderservice.order.application.port.OrderPort; +import com.example.productorderservice.order.domain.Order; +import com.example.productorderservice.product.domain.Product; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/product-order-service/src/main/java/com/example/productorderservice/order/Order.java b/product-order-service/src/main/java/com/example/productorderservice/order/domain/Order.java similarity index 86% rename from product-order-service/src/main/java/com/example/productorderservice/order/Order.java rename to product-order-service/src/main/java/com/example/productorderservice/order/domain/Order.java index 610704b9..6861a6ef 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/order/Order.java +++ b/product-order-service/src/main/java/com/example/productorderservice/order/domain/Order.java @@ -1,6 +1,6 @@ -package com.example.productorderservice.order; +package com.example.productorderservice.order.domain; -import com.example.productorderservice.product.Product; +import com.example.productorderservice.product.domain.Product; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentPort.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentPort.java deleted file mode 100644 index ae489ccb..00000000 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentPort.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.productorderservice.payment; - -import com.example.productorderservice.order.Order; - -interface PaymentPort { - Order getOrder(Long orderId); - - void pay(int totalPrice, String cardNumber); - - void save(Payment payment); -} diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/ConsolePaymentGateway.java b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/ConsolePaymentGateway.java similarity index 81% rename from product-order-service/src/main/java/com/example/productorderservice/payment/ConsolePaymentGateway.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/adapter/ConsolePaymentGateway.java index f71aca78..1af702d9 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/ConsolePaymentGateway.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/ConsolePaymentGateway.java @@ -1,4 +1,4 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.adapter; import org.springframework.stereotype.Component; diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentAdapter.java b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentAdapter.java similarity index 75% rename from product-order-service/src/main/java/com/example/productorderservice/payment/PaymentAdapter.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentAdapter.java index de82c9e9..3a9b47d2 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentAdapter.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentAdapter.java @@ -1,9 +1,9 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.adapter; -import com.example.productorderservice.order.Order; -import com.example.productorderservice.order.OrderRepository; -import com.example.productorderservice.product.DiscountPolicy; -import com.example.productorderservice.product.Product; +import com.example.productorderservice.order.domain.Order; +import com.example.productorderservice.order.adapter.OrderRepository; +import com.example.productorderservice.payment.application.port.PaymentPort; +import com.example.productorderservice.payment.domain.Payment; import org.springframework.stereotype.Component; @Component diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentGateway.java b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentGateway.java similarity index 59% rename from product-order-service/src/main/java/com/example/productorderservice/payment/PaymentGateway.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentGateway.java index 2255bc44..f6c24d9b 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentGateway.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentGateway.java @@ -1,4 +1,4 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.adapter; interface PaymentGateway { void execute(int totalPrice, String cardNumber); diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRepository.java b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentRepository.java similarity index 61% rename from product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRepository.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentRepository.java index aa6de2bd..4b367202 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRepository.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/adapter/PaymentRepository.java @@ -1,5 +1,6 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.adapter; +import com.example.productorderservice.payment.domain.Payment; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentController.java b/product-order-service/src/main/java/com/example/productorderservice/payment/application/controller/PaymentController.java similarity index 76% rename from product-order-service/src/main/java/com/example/productorderservice/payment/PaymentController.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/application/controller/PaymentController.java index 73ffd0e8..cc9baf51 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentController.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/application/controller/PaymentController.java @@ -1,5 +1,7 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.application.controller; +import com.example.productorderservice.payment.application.service.PaymentRequest; +import com.example.productorderservice.payment.application.service.PaymentService; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/application/port/PaymentPort.java b/product-order-service/src/main/java/com/example/productorderservice/payment/application/port/PaymentPort.java new file mode 100644 index 00000000..63c8eab8 --- /dev/null +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/application/port/PaymentPort.java @@ -0,0 +1,12 @@ +package com.example.productorderservice.payment.application.port; + +import com.example.productorderservice.order.domain.Order; +import com.example.productorderservice.payment.domain.Payment; + +public interface PaymentPort { + Order getOrder(Long orderId); + + void pay(int totalPrice, String cardNumber); + + void save(Payment payment); +} diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRequest.java b/product-order-service/src/main/java/com/example/productorderservice/payment/application/service/PaymentRequest.java similarity index 54% rename from product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRequest.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/application/service/PaymentRequest.java index f78f8130..d6964090 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRequest.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/application/service/PaymentRequest.java @@ -1,10 +1,10 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.application.service; import org.springframework.util.Assert; -record PaymentRequest(Long orderId, String cardNumber) { +public record PaymentRequest(Long orderId, String cardNumber) { - PaymentRequest { + public PaymentRequest { Assert.notNull(orderId, "주문 ID는 필수입니다."); Assert.hasText(cardNumber, "카드번호는 필수입니다."); } diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentService.java b/product-order-service/src/main/java/com/example/productorderservice/payment/application/service/PaymentService.java similarity index 69% rename from product-order-service/src/main/java/com/example/productorderservice/payment/PaymentService.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/application/service/PaymentService.java index a3f06477..e1244218 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentService.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/application/service/PaymentService.java @@ -1,6 +1,8 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.application.service; -import com.example.productorderservice.order.Order; +import com.example.productorderservice.order.domain.Order; +import com.example.productorderservice.payment.application.port.PaymentPort; +import com.example.productorderservice.payment.domain.Payment; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/Payment.java b/product-order-service/src/main/java/com/example/productorderservice/payment/domain/Payment.java similarity index 85% rename from product-order-service/src/main/java/com/example/productorderservice/payment/Payment.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/domain/Payment.java index d29c640d..7f54431a 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/payment/Payment.java +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/domain/Payment.java @@ -1,6 +1,6 @@ -package com.example.productorderservice.payment; +package com.example.productorderservice.payment.domain; -import com.example.productorderservice.order.Order; +import com.example.productorderservice.order.domain.Order; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; @@ -11,6 +11,7 @@ import javax.persistence.*; @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Payment { @Id diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/ProductPort.java b/product-order-service/src/main/java/com/example/productorderservice/product/ProductPort.java deleted file mode 100644 index 0c3f19af..00000000 --- a/product-order-service/src/main/java/com/example/productorderservice/product/ProductPort.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.productorderservice.product; - -interface ProductPort { - void save(Product product); - - Product getProduct(long productId); -} diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/ProductAdapter.java b/product-order-service/src/main/java/com/example/productorderservice/product/adapter/ProductAdapter.java similarity index 75% rename from product-order-service/src/main/java/com/example/productorderservice/product/ProductAdapter.java rename to product-order-service/src/main/java/com/example/productorderservice/product/adapter/ProductAdapter.java index 794ce04e..7b0a35f5 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/ProductAdapter.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/adapter/ProductAdapter.java @@ -1,5 +1,7 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.adapter; +import com.example.productorderservice.product.application.port.ProductPort; +import com.example.productorderservice.product.domain.Product; import org.springframework.stereotype.Component; @Component diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/ProductRepository.java b/product-order-service/src/main/java/com/example/productorderservice/product/adapter/ProductRepository.java similarity index 79% rename from product-order-service/src/main/java/com/example/productorderservice/product/ProductRepository.java rename to product-order-service/src/main/java/com/example/productorderservice/product/adapter/ProductRepository.java index 7e7f984a..f09f7e8c 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/ProductRepository.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/adapter/ProductRepository.java @@ -1,11 +1,9 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.adapter; +import com.example.productorderservice.product.domain.Product; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; -import java.util.HashMap; -import java.util.Map; - @Repository public interface ProductRepository extends JpaRepository { diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/ProductController.java b/product-order-service/src/main/java/com/example/productorderservice/product/application/controller/ProductController.java similarity index 71% rename from product-order-service/src/main/java/com/example/productorderservice/product/ProductController.java rename to product-order-service/src/main/java/com/example/productorderservice/product/application/controller/ProductController.java index 44d2096a..5762b481 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/ProductController.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/application/controller/ProductController.java @@ -1,5 +1,9 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.application.controller; +import com.example.productorderservice.product.application.service.AddProductRequest; +import com.example.productorderservice.product.application.service.GetProductResponse; +import com.example.productorderservice.product.application.service.ProductService; +import com.example.productorderservice.product.application.service.UpdateProductRequest; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/application/port/ProductPort.java b/product-order-service/src/main/java/com/example/productorderservice/product/application/port/ProductPort.java new file mode 100644 index 00000000..393f6674 --- /dev/null +++ b/product-order-service/src/main/java/com/example/productorderservice/product/application/port/ProductPort.java @@ -0,0 +1,9 @@ +package com.example.productorderservice.product.application.port; + +import com.example.productorderservice.product.domain.Product; + +public interface ProductPort { + void save(Product product); + + Product getProduct(long productId); +} diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/AddProductRequest.java b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/AddProductRequest.java similarity index 51% rename from product-order-service/src/main/java/com/example/productorderservice/product/AddProductRequest.java rename to product-order-service/src/main/java/com/example/productorderservice/product/application/service/AddProductRequest.java index b5467980..52cb63a1 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/AddProductRequest.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/AddProductRequest.java @@ -1,9 +1,10 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.application.service; +import com.example.productorderservice.product.domain.DiscountPolicy; import org.springframework.util.Assert; -record AddProductRequest(String name, int price, DiscountPolicy discountPolicy) { - AddProductRequest { +public record AddProductRequest(String name, int price, DiscountPolicy discountPolicy) { + public AddProductRequest { Assert.hasText(name, "상품명은 필수입니다."); Assert.isTrue(price > 0, "상품 가격은 0보다 커야 합니다."); Assert.notNull(discountPolicy, "할인 정책은 필수입니다."); diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/GetProductResponse.java b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/GetProductResponse.java similarity index 67% rename from product-order-service/src/main/java/com/example/productorderservice/product/GetProductResponse.java rename to product-order-service/src/main/java/com/example/productorderservice/product/application/service/GetProductResponse.java index e54cbd63..91297ea4 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/GetProductResponse.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/GetProductResponse.java @@ -1,15 +1,16 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.application.service; +import com.example.productorderservice.product.domain.DiscountPolicy; import org.springframework.util.Assert; -record GetProductResponse( +public record GetProductResponse( long id, String name, int price, DiscountPolicy discountPolicy ) { - GetProductResponse { + public GetProductResponse { Assert.notNull(id, "상품 ID는 필수입니다."); Assert.hasText(name, "상품명은 필수입니다."); Assert.isTrue(price > 0, "상품 가격은 0보다 커야 합니다."); diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/ProductService.java b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/ProductService.java similarity index 80% rename from product-order-service/src/main/java/com/example/productorderservice/product/ProductService.java rename to product-order-service/src/main/java/com/example/productorderservice/product/application/service/ProductService.java index 0bdf7e47..36756ecc 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/ProductService.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/ProductService.java @@ -1,5 +1,7 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.application.service; +import com.example.productorderservice.product.application.port.ProductPort; +import com.example.productorderservice.product.domain.Product; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -7,7 +9,7 @@ import org.springframework.transaction.annotation.Transactional; public class ProductService { private final ProductPort productPort; - ProductService(ProductPort productPort) { + public ProductService(ProductPort productPort) { this.productPort = productPort; } diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/UpdateProductRequest.java b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/UpdateProductRequest.java similarity index 50% rename from product-order-service/src/main/java/com/example/productorderservice/product/UpdateProductRequest.java rename to product-order-service/src/main/java/com/example/productorderservice/product/application/service/UpdateProductRequest.java index 6ff06ebc..5f642758 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/UpdateProductRequest.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/application/service/UpdateProductRequest.java @@ -1,10 +1,11 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.application.service; +import com.example.productorderservice.product.domain.DiscountPolicy; import org.springframework.util.Assert; -record UpdateProductRequest(String name, int price, DiscountPolicy discountPolicy) { +public record UpdateProductRequest(String name, int price, DiscountPolicy discountPolicy) { - UpdateProductRequest { + public UpdateProductRequest { Assert.hasText(name, "상품명은 필수입니다."); Assert.isTrue(price > 0, "상품 가격은 0보다 커야 합니다."); Assert.notNull(discountPolicy, "할인 정책은 필수입니다."); diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/DiscountPolicy.java b/product-order-service/src/main/java/com/example/productorderservice/product/domain/DiscountPolicy.java similarity index 51% rename from product-order-service/src/main/java/com/example/productorderservice/product/DiscountPolicy.java rename to product-order-service/src/main/java/com/example/productorderservice/product/domain/DiscountPolicy.java index beed732c..167540cc 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/DiscountPolicy.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/domain/DiscountPolicy.java @@ -1,19 +1,19 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.domain; public enum DiscountPolicy { NONE { @Override - int applyDiscount(int price) { + public int applyDiscount(int price) { return price; } }, FIX_1000_AMOUNT { @Override - int applyDiscount(int price) { + public int applyDiscount(int price) { return Math.max(price - 1000, 0); } } ; - abstract int applyDiscount(int price); + public abstract int applyDiscount(int price); } diff --git a/product-order-service/src/main/java/com/example/productorderservice/product/Product.java b/product-order-service/src/main/java/com/example/productorderservice/product/domain/Product.java similarity index 96% rename from product-order-service/src/main/java/com/example/productorderservice/product/Product.java rename to product-order-service/src/main/java/com/example/productorderservice/product/domain/Product.java index 65638b70..a6a4884c 100644 --- a/product-order-service/src/main/java/com/example/productorderservice/product/Product.java +++ b/product-order-service/src/main/java/com/example/productorderservice/product/domain/Product.java @@ -1,4 +1,4 @@ -package com.example.productorderservice.product; +package com.example.productorderservice.product.domain; import lombok.AccessLevel; import lombok.Getter; diff --git a/product-order-service/src/test/java/com/example/productorderservice/order/OrderApiTest.java b/product-order-service/src/test/java/com/example/productorderservice/order/OrderApiTest.java index 15f7cf06..5c11e931 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/order/OrderApiTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/order/OrderApiTest.java @@ -1,13 +1,10 @@ package com.example.productorderservice.order; import com.example.productorderservice.ApiTest; +import com.example.productorderservice.order.application.service.CreateOrderRequest; import com.example.productorderservice.product.ProductSteps; -import io.restassured.RestAssured; -import io.restassured.response.ExtractableResponse; -import io.restassured.response.Response; import org.junit.jupiter.api.Test; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; import static org.assertj.core.api.Assertions.assertThat; diff --git a/product-order-service/src/test/java/com/example/productorderservice/order/OrderServiceTest.java b/product-order-service/src/test/java/com/example/productorderservice/order/OrderServiceTest.java index 1364a071..920a0b39 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/order/OrderServiceTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/order/OrderServiceTest.java @@ -1,6 +1,8 @@ package com.example.productorderservice.order; -import com.example.productorderservice.product.ProductService; +import com.example.productorderservice.order.application.service.CreateOrderRequest; +import com.example.productorderservice.order.application.service.OrderService; +import com.example.productorderservice.product.application.service.ProductService; import com.example.productorderservice.product.ProductSteps; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/product-order-service/src/test/java/com/example/productorderservice/order/OrderSteps.java b/product-order-service/src/test/java/com/example/productorderservice/order/OrderSteps.java index d4ef72f5..7a5ce665 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/order/OrderSteps.java +++ b/product-order-service/src/test/java/com/example/productorderservice/order/OrderSteps.java @@ -1,5 +1,6 @@ package com.example.productorderservice.order; +import com.example.productorderservice.order.application.service.CreateOrderRequest; import io.restassured.RestAssured; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; diff --git a/product-order-service/src/test/java/com/example/productorderservice/order/OrderTest.java b/product-order-service/src/test/java/com/example/productorderservice/order/OrderTest.java index 37620e99..928296da 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/order/OrderTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/order/OrderTest.java @@ -1,7 +1,8 @@ package com.example.productorderservice.order; -import com.example.productorderservice.product.DiscountPolicy; -import com.example.productorderservice.product.Product; +import com.example.productorderservice.order.domain.Order; +import com.example.productorderservice.product.domain.DiscountPolicy; +import com.example.productorderservice.product.domain.Product; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentServiceTest.java b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentServiceTest.java index 6f31ffd9..2c40d6d6 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentServiceTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentServiceTest.java @@ -1,10 +1,11 @@ package com.example.productorderservice.payment; -import com.example.productorderservice.order.OrderService; +import com.example.productorderservice.order.application.service.OrderService; import com.example.productorderservice.order.OrderSteps; -import com.example.productorderservice.product.ProductService; +import com.example.productorderservice.payment.application.service.PaymentRequest; +import com.example.productorderservice.payment.application.service.PaymentService; +import com.example.productorderservice.product.application.service.ProductService; import com.example.productorderservice.product.ProductSteps; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java index e5f2e54a..af167b40 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java +++ b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java @@ -1,5 +1,6 @@ package com.example.productorderservice.payment; +import com.example.productorderservice.payment.application.service.PaymentRequest; import io.restassured.RestAssured; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; diff --git a/product-order-service/src/test/java/com/example/productorderservice/product/DiscountPolicyTest.java b/product-order-service/src/test/java/com/example/productorderservice/product/DiscountPolicyTest.java index 43d193d6..f45a019a 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/product/DiscountPolicyTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/product/DiscountPolicyTest.java @@ -1,5 +1,6 @@ package com.example.productorderservice.product; +import com.example.productorderservice.product.domain.DiscountPolicy; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/product-order-service/src/test/java/com/example/productorderservice/product/ProductApiTest.java b/product-order-service/src/test/java/com/example/productorderservice/product/ProductApiTest.java index e85f4bb4..baf65466 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/product/ProductApiTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/product/ProductApiTest.java @@ -1,14 +1,12 @@ package com.example.productorderservice.product; import com.example.productorderservice.ApiTest; -import io.restassured.RestAssured; +import com.example.productorderservice.product.adapter.ProductRepository; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; diff --git a/product-order-service/src/test/java/com/example/productorderservice/product/ProductServicePojoTest.java b/product-order-service/src/test/java/com/example/productorderservice/product/ProductServicePojoTest.java index 2d6376ba..086d828e 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/product/ProductServicePojoTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/product/ProductServicePojoTest.java @@ -1,5 +1,10 @@ package com.example.productorderservice.product; +import com.example.productorderservice.product.application.port.ProductPort; +import com.example.productorderservice.product.application.service.ProductService; +import com.example.productorderservice.product.application.service.UpdateProductRequest; +import com.example.productorderservice.product.domain.DiscountPolicy; +import com.example.productorderservice.product.domain.Product; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/product-order-service/src/test/java/com/example/productorderservice/product/ProductServiceTest.java b/product-order-service/src/test/java/com/example/productorderservice/product/ProductServiceTest.java index 3d1a195f..0424d22a 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/product/ProductServiceTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/product/ProductServiceTest.java @@ -1,5 +1,9 @@ package com.example.productorderservice.product; +import com.example.productorderservice.product.application.service.AddProductRequest; +import com.example.productorderservice.product.application.service.GetProductResponse; +import com.example.productorderservice.product.application.service.ProductService; +import com.example.productorderservice.product.application.service.UpdateProductRequest; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; diff --git a/product-order-service/src/test/java/com/example/productorderservice/product/ProductSteps.java b/product-order-service/src/test/java/com/example/productorderservice/product/ProductSteps.java index 1dc3443f..6cdebfe6 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/product/ProductSteps.java +++ b/product-order-service/src/test/java/com/example/productorderservice/product/ProductSteps.java @@ -1,5 +1,8 @@ package com.example.productorderservice.product; +import com.example.productorderservice.product.application.service.AddProductRequest; +import com.example.productorderservice.product.application.service.UpdateProductRequest; +import com.example.productorderservice.product.domain.DiscountPolicy; import io.restassured.RestAssured; import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; diff --git a/product-order-service/src/test/java/com/example/productorderservice/product/ProductTest.java b/product-order-service/src/test/java/com/example/productorderservice/product/ProductTest.java index cbeb7d82..8bbdf5a2 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/product/ProductTest.java +++ b/product-order-service/src/test/java/com/example/productorderservice/product/ProductTest.java @@ -1,5 +1,7 @@ package com.example.productorderservice.product; +import com.example.productorderservice.product.domain.DiscountPolicy; +import com.example.productorderservice.product.domain.Product; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat;