Skip to content

Commit

Permalink
[#42] Refactor: 식단 추가 시 title 필드도 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
SY2on committed Jan 26, 2024
1 parent fa3efc0 commit ac8f653
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 15 deletions.
2 changes: 2 additions & 0 deletions src/main/java/ssu/eatssu/domain/menu/dto/MenuRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@ public static class MealCreateRequest {

@Schema(description = "메뉴명 리스트", example = "[\"돈까스\", \"샐러드\", \"김치\"]")
private List<String> menuNames;

private String title;
}
}
15 changes: 12 additions & 3 deletions src/main/java/ssu/eatssu/domain/menu/entity/Meal.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
Expand Down Expand Up @@ -32,14 +31,24 @@ public class Meal {
@Enumerated(EnumType.STRING)
private Restaurant restaurant;

private String title;

@OneToMany(mappedBy = "meal", cascade = CascadeType.ALL)
private List<MealMenu> mealMenus = new ArrayList<>();

@Builder
public Meal(Date date, TimePart timePart, Restaurant restaurant) {
private Meal(Date date, TimePart timePart, Restaurant restaurant, String title) {
this.date = date;
this.timePart = timePart;
this.restaurant = restaurant;
this.title = title;
}

public static Meal withTitle(Date date, TimePart timePart, Restaurant restaurant, String title) {
return new Meal(date, timePart, restaurant, title);
}

public static Meal withoutTitle(Date date, TimePart timePart, Restaurant restaurant) {
return new Meal(date, timePart, restaurant, null);
}

public List<String> getMenuNames() {
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/ssu/eatssu/domain/menu/entity/Menu.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@ public class Menu {

private Integer price;

@OneToMany(mappedBy = "menu", cascade = CascadeType.ALL)
private List<MealMenu> mealMenus = new ArrayList<>();

@Enumerated(EnumType.STRING)
private Restaurant restaurant;

@Embedded
private Reviews reviews = new Reviews();

@OneToMany(mappedBy = "menu", cascade = CascadeType.ALL)
private List<MealMenu> mealMenus = new ArrayList<>();

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "menu_category_id")
private MenuCategory category;
Expand Down
20 changes: 11 additions & 9 deletions src/main/java/ssu/eatssu/domain/menu/service/MenuService.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,17 @@ public void createMeal(Date date, Restaurant restaurant, TimePart timePart,
if (MenuValidator.validateExistedMeal(meals, request)) {
return;
}
Meal meal;

Meal newMeal = Meal.builder()
.date(date)
.restaurant(restaurant)
.timePart(timePart)
.build();
mealRepository.save(newMeal);
if(request.getTitle() == null){
meal = Meal.withoutTitle(date, timePart, restaurant);
} else{
meal = Meal.withTitle(date, timePart, restaurant, request.getTitle());
}

mealRepository.save(meal);

addMenusToMeal(newMeal, restaurant, request);
addMenusToMeal(meal, restaurant, request.getMenuNames());
}

public MenusInformationResponse findMenusInMeal(Long mealId) {
Expand All @@ -88,8 +90,8 @@ public void deleteMeal(Long mealId) {
deleteUnusedMenus(menus);
}

private void addMenusToMeal(Meal meal, Restaurant restaurant, MealCreateRequest request) {
for (String menuName : request.getMenuNames()) {
private void addMenusToMeal(Meal meal, Restaurant restaurant, List<String> menuNames) {
for (String menuName : menuNames) {
Menu menu = createMenuIfNotExists(menuName, restaurant);
createMealMenu(meal, menu);
}
Expand Down

0 comments on commit ac8f653

Please sign in to comment.