diff --git a/src/main/java/dev/example/restaurantManager/controller/MenuItemController.java b/src/main/java/dev/example/restaurantManager/controller/MenuItemController.java new file mode 100644 index 0000000..2d105cd --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/controller/MenuItemController.java @@ -0,0 +1,80 @@ +package dev.example.restaurantManager.controller; + +import dev.example.restaurantManager.model.MenuItem; +import dev.example.restaurantManager.service.MenuItemService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +@RequestMapping("/api/v1/menuItems") +@RestController +public class MenuItemController { + + @Autowired + private MenuItemService menuItemService; + + @GetMapping("/allMenuItems") + public ResponseEntity> getAllMenuItems() { + List menuItems = menuItemService.getAllMenuItems(); + HttpHeaders headers = getCommonHeaders("Get all menu items"); + return menuItems != null && !menuItems.isEmpty() + ? new ResponseEntity<>(menuItems, headers, HttpStatus.OK) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + + } + + @PostMapping("/addMenuItem") + public ResponseEntity createMenuItem(@RequestBody MenuItem menuItem) { + MenuItem createdMenuItem = menuItemService.createMenuItems(menuItem); + HttpHeaders headers = getCommonHeaders("Create a new menu item"); + return createdMenuItem != null + ? new ResponseEntity<>(createdMenuItem, headers, HttpStatus.CREATED) + : new ResponseEntity<>(headers, HttpStatus.BAD_REQUEST); + } + + @PutMapping("/updateMenuItem/{id}") + public ResponseEntity updateMenuItem(@PathVariable String id, @RequestBody MenuItem menuItemDetails) { + MenuItem updatedMenuItem = menuItemService.updateMenuItems(id, menuItemDetails); + HttpHeaders headers = getCommonHeaders("Update menu item"); + return updatedMenuItem != null + ? new ResponseEntity<>(updatedMenuItem, headers, HttpStatus.OK) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + } + + @DeleteMapping("/deleteMenuItem/{id}") + public ResponseEntity deleteMenuItem(@PathVariable String id) { + boolean deleted = menuItemService.deleteMenuItems(id); + HttpHeaders headers = getCommonHeaders("Delete a menu item"); + headers.add("deleted", String.valueOf(deleted)); + return deleted + ? new ResponseEntity<>(headers, HttpStatus.NO_CONTENT) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + } + + @GetMapping("/getMenuItem/{id}") + public ResponseEntity getMenuItemById(@PathVariable String id) { + MenuItem menuItem = menuItemService.getMenuItemsById(id); + HttpHeaders headers = getCommonHeaders("Get a menu item by Id"); + return menuItem != null + ? new ResponseEntity<>(menuItem, headers, HttpStatus.OK) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + } + + + private HttpHeaders getCommonHeaders(String description) { + HttpHeaders headers = new HttpHeaders(); + headers.add("desc", description); + headers.add("content-type", "application/json"); + headers.add("date", new Date().toString()); + headers.add("server", "H2 Database"); + headers.add("version", "1.0.0"); + headers.add("menuItems-count", String.valueOf(menuItemService.countMenuItems())); + headers.add("object", "customers"); + return headers; + } +} \ No newline at end of file diff --git a/src/main/java/dev/example/restaurantManager/controller/MenuRestaurantController.java b/src/main/java/dev/example/restaurantManager/controller/MenuRestaurantController.java new file mode 100644 index 0000000..216aa40 --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/controller/MenuRestaurantController.java @@ -0,0 +1,82 @@ +package dev.example.restaurantManager.controller; + +import dev.example.restaurantManager.model.MenuRestaurant; +import dev.example.restaurantManager.service.MenuRestaurantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +@RequestMapping("/api/v1/menu") +@RestController +public class MenuRestaurantController { + + @Autowired + private MenuRestaurantService menuRestaurantService; + + @GetMapping("/allMenus") + public ResponseEntity> getAllMenus( ) { + List menuRestaurants = menuRestaurantService.getAllMenuRestaurants(); + HttpHeaders headers = getCommonHeaders("Get all menus"); + + return menuRestaurants != null && !menuRestaurants.isEmpty() + ? new ResponseEntity<>(menuRestaurants, headers, HttpStatus.OK) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + } + + @PostMapping("/add") + public ResponseEntity createMenu(@RequestBody MenuRestaurant menuRestaurant) { + MenuRestaurant createdMenu = menuRestaurantService.createMenuRestaurants(menuRestaurant); + HttpHeaders headers = getCommonHeaders("Create a new menu"); + + return createdMenu != null + ? new ResponseEntity<>(createdMenu, headers, HttpStatus.CREATED) + : new ResponseEntity<>(headers, HttpStatus.BAD_REQUEST); + } + @PutMapping("/update/{id}") + public ResponseEntity updateMenu(@PathVariable String id, @RequestBody MenuRestaurant menuRestaurantDetails) { + MenuRestaurant updatedMenu = menuRestaurantService.updateMenuRestaurants(id, menuRestaurantDetails); + HttpHeaders headers = getCommonHeaders("Update a menu"); + + return updatedMenu != null + ? new ResponseEntity<>(updatedMenu, headers, HttpStatus.OK) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + } + + @DeleteMapping("/delete/{id}") + public ResponseEntity deleteMenu(@PathVariable String id) { + boolean deleted = menuRestaurantService.deleteMenuRestaurants(id); + HttpHeaders headers = getCommonHeaders("Delete a menu"); + headers.add("deleted", String.valueOf(deleted)); + + return deleted + ? new ResponseEntity<>(headers, HttpStatus.NO_CONTENT) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + } + + @GetMapping("/get/{id}") + public ResponseEntity getMenuById(@PathVariable String id) { + MenuRestaurant menu = menuRestaurantService.getMenuRestaurantsById(id); + HttpHeaders headers = getCommonHeaders("Get a menu"); + + return menu != null + ? new ResponseEntity<>(menu, headers, HttpStatus.OK) + : new ResponseEntity<>(headers, HttpStatus.NOT_FOUND); + } + + private HttpHeaders getCommonHeaders(String description) { + HttpHeaders headers = new HttpHeaders(); + headers.add("desc", description); + headers.add("content-type", "application/json"); + headers.add("date", new Date().toString()); + headers.add("server", "H2 Database"); + headers.add("version", "1.0.0"); + headers.add("menuRestaurant-count", String.valueOf(menuRestaurantService.countMenuRestaurant())); + headers.add("object", "customers"); + return headers; + } +} \ No newline at end of file diff --git a/src/main/java/dev/example/restaurantManager/model/MenuItem.java b/src/main/java/dev/example/restaurantManager/model/MenuItem.java new file mode 100644 index 0000000..53ae1a6 --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/model/MenuItem.java @@ -0,0 +1,48 @@ +package dev.example.restaurantManager.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import dev.example.restaurantManager.model.enums.CourseType; +import jakarta.persistence.*; +import lombok.*; +import org.hibernate.annotations.GenericGenerator; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Data +@Getter +@Setter +@AllArgsConstructor +@Entity +public class MenuItem { + @Id + @GeneratedValue(generator = "UUID") + @GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator") + private String id; + private String name; + private String description; + private double price; + + @Enumerated(EnumType.STRING) + private CourseType courseType; + + //using manytomany bidirectional way and remove recursion issue. + @JsonIgnore + @ManyToMany(mappedBy = "menuItems", fetch = FetchType.EAGER) + private List menus = new ArrayList<>(); + + // Default constructor + public MenuItem() { + this.id = UUID.randomUUID().toString(); + } + + // Constructors, getters, and setters + + public MenuItem(String name, String description, double price) { + this.id = UUID.randomUUID().toString(); + this.name = name; + this.description = description; + this.price = price; + } +} diff --git a/src/main/java/dev/example/restaurantManager/model/MenuRestaurant.java b/src/main/java/dev/example/restaurantManager/model/MenuRestaurant.java index 1d2d819..9ff0682 100644 --- a/src/main/java/dev/example/restaurantManager/model/MenuRestaurant.java +++ b/src/main/java/dev/example/restaurantManager/model/MenuRestaurant.java @@ -1,22 +1,24 @@ package dev.example.restaurantManager.model; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.Id; -import jakarta.persistence.ManyToMany; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; +import com.fasterxml.jackson.annotation.JsonIgnore; +import jakarta.persistence.*; +import lombok.*; +import org.hibernate.annotations.GenericGenerator; + import java.util.ArrayList; import java.util.List; @Data +@Getter +@Setter @AllArgsConstructor @NoArgsConstructor @Entity public class MenuRestaurant { @Id + @GeneratedValue(generator = "UUID") + @GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator") private String id; private String name; private Double price; @@ -27,6 +29,16 @@ public class MenuRestaurant { @ManyToMany(mappedBy = "menus", fetch = FetchType.LAZY) private List orders = new ArrayList<>(); + //using bidirectional manytomany + @JsonIgnore + @ManyToMany(fetch = FetchType.EAGER + , cascade = {CascadeType.PERSIST, CascadeType.MERGE}) + @JoinTable( + name = "menu_item_restaurant", + joinColumns = @JoinColumn(name = "menu_id"), + inverseJoinColumns = @JoinColumn(name = "menu_item_id")) + private List menuItems = new ArrayList<>(); + public MenuRestaurant(String id, String name, Double price, String content, boolean active, boolean water) { this.id = id; this.name = name; @@ -36,6 +48,16 @@ public MenuRestaurant(String id, String name, Double price, String content, bool this.water = water; } + public void addMenuItem(MenuItem menuItem) { + this.menuItems.add(menuItem); + if (menuItem.getMenus() == null) { + menuItem.setMenus(new ArrayList<>()); + } + if (!menuItem.getMenus().contains(this)) { + menuItem.getMenus().add(this); + } + } + //We might want to exclude 'orders' from toString() to avoid circular references @Override public String toString() { diff --git a/src/main/java/dev/example/restaurantManager/model/enums/CourseType.java b/src/main/java/dev/example/restaurantManager/model/enums/CourseType.java new file mode 100644 index 0000000..cf861e5 --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/model/enums/CourseType.java @@ -0,0 +1,7 @@ +package dev.example.restaurantManager.model.enums; + +public enum CourseType { + STARTER, + MAIN, + DESSERT +} diff --git a/src/main/java/dev/example/restaurantManager/repository/MenuItemRepository.java b/src/main/java/dev/example/restaurantManager/repository/MenuItemRepository.java new file mode 100644 index 0000000..aa37fc8 --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/repository/MenuItemRepository.java @@ -0,0 +1,7 @@ +package dev.example.restaurantManager.repository; + +import dev.example.restaurantManager.model.MenuItem; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MenuItemRepository extends JpaRepository { +} diff --git a/src/main/java/dev/example/restaurantManager/service/MenuItemService.java b/src/main/java/dev/example/restaurantManager/service/MenuItemService.java new file mode 100644 index 0000000..0f03c57 --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/service/MenuItemService.java @@ -0,0 +1,13 @@ +package dev.example.restaurantManager.service; + +import dev.example.restaurantManager.model.MenuItem; +import java.util.List; + +public interface MenuItemService { + List getAllMenuItems(); + MenuItem createMenuItems(MenuItem menuItem); + MenuItem getMenuItemsById(String id); + MenuItem updateMenuItems(String id, MenuItem menuItemDetails); + boolean deleteMenuItems(String id); + long countMenuItems(); +} diff --git a/src/main/java/dev/example/restaurantManager/service/MenuItemServiceImpl.java b/src/main/java/dev/example/restaurantManager/service/MenuItemServiceImpl.java new file mode 100644 index 0000000..7bec9ec --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/service/MenuItemServiceImpl.java @@ -0,0 +1,71 @@ +package dev.example.restaurantManager.service; + +import dev.example.restaurantManager.model.MenuItem; +import dev.example.restaurantManager.model.MenuRestaurant; +import dev.example.restaurantManager.repository.MenuItemRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Optional; + +@Service +public class MenuItemServiceImpl implements MenuItemService { + + @Autowired + MenuItemRepository menuItemRepository; + + @Override + public List getAllMenuItems() { + return menuItemRepository.findAll(); + } + + @Override + public MenuItem createMenuItems(MenuItem menuItem) { + return menuItemRepository.save(menuItem); + } + + @Override + public MenuItem getMenuItemsById(String id) { + return menuItemRepository.findById(id).orElse(null); + } + + @Override + public MenuItem updateMenuItems(String id, MenuItem menuItemDetails) { + boolean isTrue = false; + MenuItem menuItemElement = menuItemRepository.findById(id).orElse(null); + if(menuItemElement != null){ + Field[] fields = menuItemRepository.getClass().getDeclaredFields(); + for (Field field : fields) { + try { + field.setAccessible(true); + if(field.get(menuItemElement) != field.get(menuItemDetails)){ + isTrue = true; + field.set(menuItemElement,field.get(menuItemDetails)); + } + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + menuItemRepository.save(menuItemElement); + } + + return isTrue ? menuItemElement : menuItemDetails; + } + + @Override + public boolean deleteMenuItems(String id) { + Optional menuItemElement = menuItemRepository.findById(id); + if(menuItemElement != null){ + menuItemRepository.deleteById(id); + return true; + } + return false; + } + + @Override + public long countMenuItems() { + return menuItemRepository.count(); + } +} diff --git a/src/main/java/dev/example/restaurantManager/service/MenuRestaurantService.java b/src/main/java/dev/example/restaurantManager/service/MenuRestaurantService.java new file mode 100644 index 0000000..b5a159f --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/service/MenuRestaurantService.java @@ -0,0 +1,13 @@ +package dev.example.restaurantManager.service; + +import dev.example.restaurantManager.model.MenuRestaurant; +import java.util.List; + +public interface MenuRestaurantService { + List getAllMenuRestaurants(); + MenuRestaurant createMenuRestaurants(MenuRestaurant menuRestaurant); + MenuRestaurant getMenuRestaurantsById(String id); + MenuRestaurant updateMenuRestaurants(String id, MenuRestaurant menuRestaurantDetails); + boolean deleteMenuRestaurants(String id); + long countMenuRestaurant(); +} diff --git a/src/main/java/dev/example/restaurantManager/service/MenuRestaurantServiceImpl.java b/src/main/java/dev/example/restaurantManager/service/MenuRestaurantServiceImpl.java new file mode 100644 index 0000000..310fcb2 --- /dev/null +++ b/src/main/java/dev/example/restaurantManager/service/MenuRestaurantServiceImpl.java @@ -0,0 +1,70 @@ +package dev.example.restaurantManager.service; + +import dev.example.restaurantManager.model.MenuRestaurant; +import dev.example.restaurantManager.repository.MenuRestaurantRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Optional; + +@Service +public class MenuRestaurantServiceImpl implements MenuRestaurantService{ + + @Autowired + MenuRestaurantRepository menuRestaurantRepository; + + @Override + public List getAllMenuRestaurants() { + return menuRestaurantRepository.findAll(); + } + + @Override + public MenuRestaurant createMenuRestaurants(MenuRestaurant menuRestaurant) { + return menuRestaurantRepository.save(menuRestaurant); + } + + @Override + public MenuRestaurant getMenuRestaurantsById(String id) { + return menuRestaurantRepository.findById(id).orElse(null); + } + + @Override + public MenuRestaurant updateMenuRestaurants(String id, MenuRestaurant menuRestaurantDetails) { + boolean isTrue = false; + MenuRestaurant menuRestaurantElement = menuRestaurantRepository.findById(id).orElse(null); + if(menuRestaurantElement != null){ + Field[] fields = menuRestaurantElement.getClass().getDeclaredFields(); + for (Field field : fields) { + try { + field.setAccessible(true); + if(field.get(menuRestaurantElement) != field.get(menuRestaurantDetails)){ + isTrue = true; + field.set(menuRestaurantElement,field.get(menuRestaurantDetails)); + } + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + menuRestaurantRepository.save(menuRestaurantElement); + } + + return isTrue ? menuRestaurantElement : menuRestaurantDetails; + } + + @Override + public boolean deleteMenuRestaurants(String id) { + Optional menuRestaurantElement = menuRestaurantRepository.findById(id); + if(menuRestaurantElement != null){ + menuRestaurantRepository.deleteById(id); + return true; + } + return false; + } + + @Override + public long countMenuRestaurant() { + return menuRestaurantRepository.count(); + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 56fa3b7..120bb3a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -12,6 +12,7 @@ spring.h2.console.enabled=true # DDL OPTIONS: create-drop, create, update, none, validate #spring.jpa.hibernate.ddl-auto=create-drop +#spring.jpa.hibernate.ddl-auto=create-drop # SWAGGER diff --git a/src/test/java/dev/example/restaurantManager/MenuRestaurantMenuItemTest.java b/src/test/java/dev/example/restaurantManager/MenuRestaurantMenuItemTest.java new file mode 100644 index 0000000..b4796b0 --- /dev/null +++ b/src/test/java/dev/example/restaurantManager/MenuRestaurantMenuItemTest.java @@ -0,0 +1,68 @@ +package dev.example.restaurantManager; + +import dev.example.restaurantManager.model.MenuItem; +import dev.example.restaurantManager.model.MenuRestaurant; +import dev.example.restaurantManager.repository.MenuItemRepository; +import dev.example.restaurantManager.repository.MenuRestaurantRepository; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import dev.example.restaurantManager.model.enums.CourseType; + +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.*; + +@DataJpaTest +public class MenuRestaurantMenuItemTest { + + @Autowired + private MenuRestaurantRepository menuRestaurantRepository; + + @Autowired + private MenuItemRepository menuItemRepository; + + @Test + public void testRelationshipOfMenuRestaurantMenuItem() { + + //Arrange + MenuRestaurant menuRestaurant = new MenuRestaurant(); + menuRestaurant.setId(UUID.randomUUID().toString()); + menuRestaurant.setName("Menu Example"); + menuRestaurant.setPrice(18.0); + menuRestaurant.setContent("Content three dishes"); + menuRestaurant.setActive(true); + menuRestaurant.setWater(true); + + menuRestaurantRepository.save(menuRestaurant); + MenuItem menuItemOne = new MenuItem(); + menuItemOne.setName("Item 1"); + menuItemOne.setDescription("Description 1"); + menuItemOne.setPrice(7.5); + menuItemOne.setCourseType(CourseType.STARTER); + menuRestaurant.addMenuItem(menuItemOne); + MenuItem menuItemTwo = new MenuItem(); + menuItemTwo.setName("Item 2"); + menuItemTwo.setDescription("Description 2"); + menuItemTwo.setPrice(10.5); + menuItemTwo.setCourseType(CourseType.MAIN); + menuRestaurant.addMenuItem(menuItemTwo); + MenuItem menuItemThree = new MenuItem(); + menuItemThree.setName("Item 2"); + menuItemThree.setDescription("Description 2"); + menuItemThree.setPrice(10.5); + menuItemThree.setCourseType(CourseType.DESSERT); + menuRestaurant.addMenuItem(menuItemThree); + MenuRestaurant menu = menuRestaurantRepository.save(menuRestaurant); + //Act + MenuRestaurant locateMenu = menuRestaurantRepository.findById(menu.getId()).orElse(null); + MenuItem locateMenuItem = locateMenu.getMenuItems().get(0); + + //Assert + assertNotNull(locateMenu, "MenuRestaurant not null"); + assertFalse(locateMenu.getMenuItems().isEmpty(), "MenuRestaurant should have at least one MenuItem"); + assertNotNull(locateMenuItem, "MenuItem not null"); + assertEquals(locateMenu.getMenuItems().get(0).getCourseType(),CourseType.STARTER); + System.out.println(locateMenuItem.toString()); + } +} diff --git a/src/test/java/dev/example/restaurantManager/RelationshipsOrderRestaurantTest.java b/src/test/java/dev/example/restaurantManager/RelationshipsOrderRestaurantTest.java index a3c8f84..f9d9d59 100644 --- a/src/test/java/dev/example/restaurantManager/RelationshipsOrderRestaurantTest.java +++ b/src/test/java/dev/example/restaurantManager/RelationshipsOrderRestaurantTest.java @@ -29,9 +29,9 @@ public class RelationshipsOrderRestaurantTest { @Test public void TestCreateOrder() { // Create sample menus - MenuRestaurant menuRestaurant1 = new MenuRestaurant("M01", "Burger Menu", 10.99, "Burger, fries, and drink", true, true, null); - MenuRestaurant menuRestaurant2 = new MenuRestaurant("M02","Pizza Menu", 12.99, "Pizza and salad", true, false, null); - MenuRestaurant menuRestaurant3 = new MenuRestaurant("M03","Salad Menu", 8.99, "Mixed salad and dressing", true, true, null); + MenuRestaurant menuRestaurant1 = new MenuRestaurant("M01", "Burger Menu", 10.99, "Burger, fries, and drink", true, true); + MenuRestaurant menuRestaurant2 = new MenuRestaurant("M02","Pizza Menu", 12.99, "Pizza and salad", true, false); + MenuRestaurant menuRestaurant3 = new MenuRestaurant("M03","Salad Menu", 8.99, "Mixed salad and dressing", true, true); // Save sample menus menuRestaurantRepository.save(menuRestaurant1); menuRestaurantRepository.save(menuRestaurant2); @@ -115,9 +115,9 @@ public void TestCreateOrder() { @Test public void TestCreateOrderMenu () { - MenuRestaurant menuRestaurant1 = new MenuRestaurant("M01", "Burger Menu", 10.99, "Burger, fries, and drink", true, true, null); - MenuRestaurant menuRestaurant2 = new MenuRestaurant("M02","Pizza Menu", 12.99, "Pizza and salad", true, false, null); - MenuRestaurant menuRestaurant3 = new MenuRestaurant("M03","Salad Menu", 8.99, "Mixed salad and dressing", true, true, null); + MenuRestaurant menuRestaurant1 = new MenuRestaurant("M01", "Burger Menu", 10.99, "Burger, fries, and drink", true, true); + MenuRestaurant menuRestaurant2 = new MenuRestaurant("M02","Pizza Menu", 12.99, "Pizza and salad", true, false); + MenuRestaurant menuRestaurant3 = new MenuRestaurant("M03","Salad Menu", 8.99, "Mixed salad and dressing", true, true); // Save sample menus menuRestaurantRepository.save(menuRestaurant1); menuRestaurantRepository.save(menuRestaurant2);