diff --git a/README.md b/README.md
index 61e6211a9..ecbd2fe3b 100644
--- a/README.md
+++ b/README.md
@@ -98,22 +98,23 @@ docker compose -p kitchenpos up -d
### 상품
-| 한글명 | 영문명 | 설명 |
-| --- | --- | --- |
-| 상품 | product | 메뉴를 관리하는 기준이 되는 데이터 |
+| 한글명 | 영문명 | 설명 |
+| --- |----------------| --- |
+| 상품 | product | 메뉴를 관리하는 기준이 되는 데이터 |
| 이름 | displayed name | 음식을 상상하게 만드는 중요한 요소 |
### 메뉴
-| 한글명 | 영문명 | 설명 |
-|--------| --- | --- |
-| 원래 가격 | original price | 메뉴에 포함된 상품가격 * 수량의 총합. 즉, 메뉴에 포함된 상품들을 메뉴가 아니라 단품으로 모두 시켰을때의 가격의 총합 |
-| 금액 | amount | 가격 * 수량 |
-| 메뉴 | menu | 메뉴 그룹에 속하는 실제 주문 가능 단위 |
-| 메뉴 그룹 | menu group | 각각의 메뉴를 성격에 따라 분류하여 묶어둔 그룹 |
-| 메뉴 상품 | menu product | 메뉴에 속하는 수량이 있는 상품 |
+| 한글명 | 영문명 | 설명 |
+|-------|--------------------| --- |
+| 원래 가격 | original price | 메뉴에 포함된 상품가격 * 수량의 총합. 즉, 메뉴에 포함된 상품들을 메뉴가 아니라 단품으로 모두 시켰을때의 가격의 총합 |
+| 금액 | amount | 가격 * 수량 |
+| 메뉴 | menu | 메뉴 그룹에 속하는 실제 주문 가능 단위 |
+| 메뉴 그룹 | menu group | 각각의 메뉴를 성격에 따라 분류하여 묶어둔 그룹 |
+| 메뉴 상품 | menuProduct | 메뉴에 속하는 수량이 있는 상품 |
+| 포함 상품 | includedProduct | 메뉴 상품에 속하는 가격이 있는 상품 |
| 숨겨진 메뉴 | not displayed menu | 주문할 수 없는 숨겨진 메뉴 |
-| 이름 | displayed name | 음식을 상상하게 만드는 중요한 요소 |
+| 이름 | displayed name | 음식을 상상하게 만드는 중요한 요소 |
### 매장 주문
diff --git a/src/main/java/kitchenpos/products/tobe/domain/infra/PurgomalumValidator.java b/src/main/java/kitchenpos/common/domain/infra/PurgomalumValidator.java
similarity index 64%
rename from src/main/java/kitchenpos/products/tobe/domain/infra/PurgomalumValidator.java
rename to src/main/java/kitchenpos/common/domain/infra/PurgomalumValidator.java
index 27bd7af3d..88afc7c03 100644
--- a/src/main/java/kitchenpos/products/tobe/domain/infra/PurgomalumValidator.java
+++ b/src/main/java/kitchenpos/common/domain/infra/PurgomalumValidator.java
@@ -1,4 +1,4 @@
-package kitchenpos.products.tobe.domain.infra;
+package kitchenpos.common.domain.infra;
public interface PurgomalumValidator {
boolean containsProfanity(String text);
diff --git a/src/main/java/kitchenpos/products/tobe/domain/vo/ProductName.java b/src/main/java/kitchenpos/common/domain/vo/Name.java
similarity index 66%
rename from src/main/java/kitchenpos/products/tobe/domain/vo/ProductName.java
rename to src/main/java/kitchenpos/common/domain/vo/Name.java
index a09bfb1a1..3e6df98ed 100644
--- a/src/main/java/kitchenpos/products/tobe/domain/vo/ProductName.java
+++ b/src/main/java/kitchenpos/common/domain/vo/Name.java
@@ -1,17 +1,17 @@
-package kitchenpos.products.tobe.domain.vo;
+package kitchenpos.common.domain.vo;
-import kitchenpos.products.tobe.domain.infra.PurgomalumValidator;
+import kitchenpos.common.domain.infra.PurgomalumValidator;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.util.Objects;
@Embeddable
-public class ProductName {
- @Column(name = "name", nullable = false)
+public class Name {
+ @Column()
private String name;
- public ProductName(String name, PurgomalumValidator purgomalumValidator) {
+ public Name(String name, PurgomalumValidator purgomalumValidator) {
if (Objects.isNull(name) || purgomalumValidator.containsProfanity(name)) {
throw new IllegalArgumentException();
}
@@ -23,13 +23,13 @@ public String getName() {
return name;
}
- protected ProductName() {}
+ protected Name() {}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- ProductName that = (ProductName) o;
+ Name that = (Name) o;
return Objects.equals(name, that.name);
}
diff --git a/src/main/java/kitchenpos/products/tobe/domain/vo/ProductPrice.java b/src/main/java/kitchenpos/common/domain/vo/Price.java
similarity index 75%
rename from src/main/java/kitchenpos/products/tobe/domain/vo/ProductPrice.java
rename to src/main/java/kitchenpos/common/domain/vo/Price.java
index b0c847989..d00ffe397 100644
--- a/src/main/java/kitchenpos/products/tobe/domain/vo/ProductPrice.java
+++ b/src/main/java/kitchenpos/common/domain/vo/Price.java
@@ -1,4 +1,4 @@
-package kitchenpos.products.tobe.domain.vo;
+package kitchenpos.common.domain.vo;
import javax.persistence.Column;
import javax.persistence.Embeddable;
@@ -6,13 +6,13 @@
import java.util.Objects;
@Embeddable
-public class ProductPrice {
+public class Price {
static final BigDecimal MIN_PRICE = BigDecimal.ZERO;
- @Column(name = "price", nullable = false)
+ @Column()
private BigDecimal price;
- public ProductPrice(BigDecimal price) {
+ public Price(BigDecimal price) {
if (Objects.isNull(price) || MIN_PRICE.compareTo(price) > 0) {
throw new IllegalArgumentException();
}
@@ -24,13 +24,13 @@ public BigDecimal getPrice() {
return price;
}
- protected ProductPrice() {}
+ protected Price() {}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- ProductPrice that = (ProductPrice) o;
+ Price that = (Price) o;
return Objects.equals(price, that.price);
}
diff --git a/src/main/java/kitchenpos/products/infra/DefaultPurgomalumValidator.java b/src/main/java/kitchenpos/common/infra/DefaultPurgomalumValidator.java
similarity index 89%
rename from src/main/java/kitchenpos/products/infra/DefaultPurgomalumValidator.java
rename to src/main/java/kitchenpos/common/infra/DefaultPurgomalumValidator.java
index 6317fae09..233889735 100644
--- a/src/main/java/kitchenpos/products/infra/DefaultPurgomalumValidator.java
+++ b/src/main/java/kitchenpos/common/infra/DefaultPurgomalumValidator.java
@@ -1,6 +1,6 @@
-package kitchenpos.products.infra;
+package kitchenpos.common.infra;
-import kitchenpos.products.tobe.domain.infra.PurgomalumValidator;
+import kitchenpos.common.domain.infra.PurgomalumValidator;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
diff --git a/src/main/java/kitchenpos/eatinorders/application/OrderService.java b/src/main/java/kitchenpos/eatinorders/application/OrderService.java
index c20f52c7f..4decebb8e 100644
--- a/src/main/java/kitchenpos/eatinorders/application/OrderService.java
+++ b/src/main/java/kitchenpos/eatinorders/application/OrderService.java
@@ -3,7 +3,7 @@
import kitchenpos.deliveryorders.infra.KitchenridersClient;
import kitchenpos.eatinorders.domain.*;
import kitchenpos.menus.domain.Menu;
-import kitchenpos.menus.domain.MenuRepository;
+import kitchenpos.menus.domain.LegacyMenuRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -15,18 +15,18 @@
@Service
public class OrderService {
private final OrderRepository orderRepository;
- private final MenuRepository menuRepository;
+ private final LegacyMenuRepository legacyMenuRepository;
private final OrderTableRepository orderTableRepository;
private final KitchenridersClient kitchenridersClient;
public OrderService(
final OrderRepository orderRepository,
- final MenuRepository menuRepository,
+ final LegacyMenuRepository legacyMenuRepository,
final OrderTableRepository orderTableRepository,
final KitchenridersClient kitchenridersClient
) {
this.orderRepository = orderRepository;
- this.menuRepository = menuRepository;
+ this.legacyMenuRepository = legacyMenuRepository;
this.orderTableRepository = orderTableRepository;
this.kitchenridersClient = kitchenridersClient;
}
@@ -41,7 +41,7 @@ public Order create(final Order request) {
if (Objects.isNull(orderLineItemRequests) || orderLineItemRequests.isEmpty()) {
throw new IllegalArgumentException();
}
- final List