diff --git a/src/main/java/kitchenpos/common/domain/Price.java b/src/main/java/kitchenpos/common/domain/Price.java
new file mode 100644
index 000000000..57e20843e
--- /dev/null
+++ b/src/main/java/kitchenpos/common/domain/Price.java
@@ -0,0 +1,56 @@
+package kitchenpos.common.domain;
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import java.math.BigDecimal;
+import java.util.Objects;
+
+@Embeddable
+public class Price {
+
+ @Column(name = "price", nullable = false)
+ private BigDecimal price;
+
+ protected Price() {
+ }
+
+ public Price(BigDecimal price) {
+ validation(price);
+ this.price = price;
+ }
+
+ private void validation(BigDecimal price) {
+ if (Objects.isNull(price)) {
+ throw new IllegalArgumentException("가격은 필수입니다.");
+ }
+
+ if (price.compareTo(BigDecimal.ZERO) < 0) {
+ throw new IllegalArgumentException("가격은 0원 이상이여야 합니다.");
+ }
+ }
+
+ public BigDecimal getPrice() {
+ return price;
+ }
+
+ public Price add(Price addPrice) {
+ return new Price(this.price.add(addPrice.price));
+ }
+
+ public int compareTo(Price totalPrice) {
+ return price.compareTo(totalPrice.price);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Price price1 = (Price) o;
+ return Objects.equals(price, price1.price);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(price);
+ }
+}
diff --git a/src/main/java/kitchenpos/eatinorders/application/OrderService.java b/src/main/java/kitchenpos/eatinorders/application/OrderService.java
index 91ad8e025..924dee5a7 100644
--- a/src/main/java/kitchenpos/eatinorders/application/OrderService.java
+++ b/src/main/java/kitchenpos/eatinorders/application/OrderService.java
@@ -2,7 +2,7 @@
import kitchenpos.deliveryorders.infra.KitchenridersClient;
import kitchenpos.eatinorders.domain.*;
-import kitchenpos.menus.domain.Menu;
+import kitchenpos.menus.tobe.domain.Menu;
import kitchenpos.menus.domain.MenuRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -20,10 +20,10 @@ public class OrderService {
private final KitchenridersClient kitchenridersClient;
public OrderService(
- final OrderRepository orderRepository,
- final MenuRepository menuRepository,
- final OrderTableRepository orderTableRepository,
- final KitchenridersClient kitchenridersClient
+ final OrderRepository orderRepository,
+ final MenuRepository menuRepository,
+ final OrderTableRepository orderTableRepository,
+ final KitchenridersClient kitchenridersClient
) {
this.orderRepository = orderRepository;
this.menuRepository = menuRepository;
@@ -42,9 +42,9 @@ public Order create(final Order request) {
throw new IllegalArgumentException();
}
final List