diff --git a/src/main/java/ssu/eatssu/domain/menu/exception/RestaurantNotFoundException.java b/src/main/java/ssu/eatssu/domain/menu/exception/RestaurantNotFoundException.java new file mode 100644 index 0000000..b5653bf --- /dev/null +++ b/src/main/java/ssu/eatssu/domain/menu/exception/RestaurantNotFoundException.java @@ -0,0 +1,16 @@ +package ssu.eatssu.domain.menu.exception; + +public class RestaurantNotFoundException extends IllegalArgumentException { + + public RestaurantNotFoundException() { + super("해당 식당이 존재하지 않습니다."); + } + + public RestaurantNotFoundException(String s) { + super(s); + } + + public RestaurantNotFoundException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/ssu/eatssu/domain/restaurant/Restaurant.java b/src/main/java/ssu/eatssu/domain/restaurant/Restaurant.java index 1e0de58..e55455b 100644 --- a/src/main/java/ssu/eatssu/domain/restaurant/Restaurant.java +++ b/src/main/java/ssu/eatssu/domain/restaurant/Restaurant.java @@ -6,8 +6,8 @@ import lombok.NoArgsConstructor; import java.util.List; -import ssu.eatssu.domain.menu.Meal; -import ssu.eatssu.domain.menu.Menu; +import ssu.eatssu.domain.menu.entity.Meal; +import ssu.eatssu.domain.menu.entity.Menu; @Entity @Getter diff --git a/src/main/java/ssu/eatssu/domain/restaurant/RestaurantName.java b/src/main/java/ssu/eatssu/domain/restaurant/RestaurantName.java index 12df983..a35dca6 100644 --- a/src/main/java/ssu/eatssu/domain/restaurant/RestaurantName.java +++ b/src/main/java/ssu/eatssu/domain/restaurant/RestaurantName.java @@ -1,29 +1,43 @@ package ssu.eatssu.domain.restaurant; import com.fasterxml.jackson.annotation.JsonCreator; +import java.util.Arrays; import lombok.Getter; import java.util.Locale; +import ssu.eatssu.domain.menu.exception.RestaurantNotFoundException; @Getter public enum RestaurantName { - DODAM("도담 식당", 6000), - DORMITORY("기숙사 식당", 5000), - FOOD_COURT("푸드 코트", 0), - SNACK_CORNER("스낵 코너", 0), - HAKSIK("학생 식당", 5000); + DODAM(RestaurantType.VARIABLE, "도담 식당", 6000), + DORMITORY(RestaurantType.VARIABLE, "기숙사 식당", 5000), + FOOD_COURT(RestaurantType.FIXED, "푸드 코트", 0), + SNACK_CORNER(RestaurantType.FIXED, "스낵 코너", 0), + HAKSIK(RestaurantType.VARIABLE, "학생 식당", 5000); + private RestaurantType restaurantType; private String description; private Integer price; @JsonCreator public static RestaurantName from(String description) { - return RestaurantName.valueOf(description.toUpperCase(Locale.ROOT)); + return Arrays.stream(RestaurantName.values()) + .filter(d -> d.getDescription().equals(description)) + .findAny() + .orElseThrow(RestaurantNotFoundException::new); } - RestaurantName(String description, Integer price) { + RestaurantName(RestaurantType restaurantType, String description, Integer price) { + this.restaurantType = restaurantType; this.description = description; this.price = price; } + public static boolean isFixed(RestaurantName restaurantName) { + return restaurantName.getRestaurantType() == RestaurantType.FIXED; + } + + public static boolean isVariable(RestaurantName restaurantName) { + return restaurantName.getRestaurantType() == RestaurantType.VARIABLE; + } } diff --git a/src/main/java/ssu/eatssu/domain/restaurant/RestaurantType.java b/src/main/java/ssu/eatssu/domain/restaurant/RestaurantType.java new file mode 100644 index 0000000..f0f6040 --- /dev/null +++ b/src/main/java/ssu/eatssu/domain/restaurant/RestaurantType.java @@ -0,0 +1,6 @@ +package ssu.eatssu.domain.restaurant; + +public enum RestaurantType { + FIXED, + VARIABLE +}