- Timestamp:
- 05/02/25 00:37:10 (2 weeks ago)
- Branches:
- main
- Children:
- c44c5ed
- Parents:
- e15e8d9
- Location:
- src/main/java/com/example/rezevirajmasa/demo
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/com/example/rezevirajmasa/demo/dto/ReservationDTO.java
re15e8d9 r2518b3a 1 1 package com.example.rezevirajmasa.demo.dto; 2 2 3 import com.example.rezevirajmasa.demo.model.PreorderedItem; 3 4 import com.example.rezevirajmasa.demo.model.Reservation; 4 5 import com.example.rezevirajmasa.demo.model.Restaurant; … … 15 16 private LocalDateTime reservationDateTime; 16 17 private LocalDateTime checkInTime; 17 private Restaurant restaurant;18 private Long restaurantId; 18 19 private int partySize; 19 20 private String status; 20 21 private String specialRequests; 21 22 private String paymentStatus; 22 private List<String> preOrderedItems; 23 23 private List<PreorderedItem> preOrderedItems; 24 24 25 25 public ReservationDTO() { 26 26 } 27 27 28 public ReservationDTO(Long reservationID, String userEmail, BigDecimal rating, Long tableNumber, LocalDateTime reservationDateTime, LocalDateTime checkInTime, Restaurant restaurant, int partySize, String status, String specialRequests, String paymentStatus, List<String> preOrderedItems) {28 public ReservationDTO(Long reservationID, String userEmail, BigDecimal rating, Long tableNumber, LocalDateTime reservationDateTime, LocalDateTime checkInTime, Long restaurantId, int partySize, String status, String specialRequests, String paymentStatus, List<PreorderedItem> preOrderedItems) { 29 29 this.reservationID = reservationID; 30 30 this.userEmail = userEmail; … … 33 33 this.reservationDateTime = reservationDateTime; 34 34 this.checkInTime = checkInTime; 35 this.res taurant = restaurant;35 this.reservationID = restaurantId; 36 36 this.partySize = partySize; 37 37 this.status = status; … … 48 48 this.reservationDateTime = reservation.getReservationDateTime(); 49 49 this.checkInTime = reservation.getCheckInTime(); 50 this.restaurant = reservation.getRestaurant();50 this.restaurantId = reservation.getRestaurant().getRestaurantId(); 51 51 this.partySize = reservation.getPartySize(); 52 52 this.status = reservation.getStatus(); … … 54 54 this.paymentStatus = reservation.getPaymentStatus(); 55 55 this.preOrderedItems = reservation.getPreOrderedItems(); 56 }57 58 public List<String> getPreOrderedItems() {59 return preOrderedItems;60 }61 62 public void setPreOrderedItems(List<String> preOrderedItems) {63 this.preOrderedItems = preOrderedItems;64 56 } 65 57 … … 112 104 } 113 105 114 public Restaurant getRestaurant() {115 return restaurant ;106 public Long getRestaurantId() { 107 return restaurantId; 116 108 } 117 109 118 public void setRestaurant (Restaurant restaurant) {119 this.restaurant = restaurant;110 public void setRestaurantId(Long restaurantId) { 111 this.restaurantId = restaurantId; 120 112 } 121 113 … … 151 143 this.paymentStatus = paymentStatus; 152 144 } 145 146 public List<PreorderedItem> getPreOrderedItems() { 147 return preOrderedItems; 148 } 149 150 public void setPreOrderedItems(List<PreorderedItem> preOrderedItems) { 151 this.preOrderedItems = preOrderedItems; 152 } 153 153 } -
src/main/java/com/example/rezevirajmasa/demo/model/Menu.java
re15e8d9 r2518b3a 6 6 7 7 import java.math.BigDecimal; 8 import java.util.ArrayList; 9 import java.util.List; 8 10 9 11 @Entity … … 13 15 @Id 14 16 @GeneratedValue(strategy = GenerationType.IDENTITY) 15 @Column(name = " MenuID")17 @Column(name = "menu_id") 16 18 private Long menuID; 17 19 18 20 @ManyToOne 19 @JoinColumn(name = " RestaurantID", nullable = false)21 @JoinColumn(name = "restaurant_id", nullable = false) 20 22 @JsonIgnore 21 23 private Restaurant restaurant; 22 24 23 @Column(name = " ItemName", length = 100)25 @Column(name = "item_name", length = 100) 24 26 private String itemName; 25 27 26 @Column(name = " Category", length = 50)28 @Column(name = "category", length = 50) 27 29 private String category; 28 30 29 @Column(name = " Price", precision = 8, scale = 2)31 @Column(name = "price", precision = 8, scale = 2) 30 32 private BigDecimal price; 31 33 32 @Column(name = " Description")34 @Column(name = "description") 33 35 private String description; 34 36 35 @ Column(name = "DietaryInformation", columnDefinition = "JSONB")36 private String dietaryInformation;37 @OneToMany(mappedBy = "menu", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) 38 private List<MenuTag> tags = new ArrayList<>(); 37 39 38 40 public Menu() { 39 41 } 40 42 41 public Menu(Restaurant restaurant, String itemName, String category, BigDecimal price, String description, String dietaryInformation) { 43 public Menu(Long menuID, Restaurant restaurant, String itemName, String category, BigDecimal price, String description, List<MenuTag> tags) { 44 this.menuID = menuID; 42 45 this.restaurant = restaurant; 43 46 this.itemName = itemName; … … 45 48 this.price = price; 46 49 this.description = description; 47 this. dietaryInformation = dietaryInformation;50 this.tags = tags; 48 51 } 49 52 } -
src/main/java/com/example/rezevirajmasa/demo/model/Reservation.java
re15e8d9 r2518b3a 26 26 @ManyToOne 27 27 @JoinColumn(name = "UserID") 28 @Json ManagedReference28 @JsonBackReference(value = "user-reservations") 29 29 private User user; 30 30 … … 57 57 private LocalDateTime checkOutTime; 58 58 59 @ElementCollection 60 @CollectionTable(name = "reservation_preordered_items", joinColumns = @JoinColumn(name = "reservation_id")) 61 @Column(name = "item") 62 private List<String> preOrderedItems = new ArrayList<>(); 59 // @ElementCollection 60 // @CollectionTable(name = "reservation_preordered_items", joinColumns = @JoinColumn(name = "reservation_id")) 61 // @Column(name = "item") 62 // private List<String> preOrderedItems = new ArrayList<>(); 63 @OneToMany(mappedBy = "reservation", cascade = CascadeType.ALL, orphanRemoval = true) 64 private List<PreorderedItem> preOrderedItems = new ArrayList<>(); 63 65 64 66 @Column(name = "PaymentStatus", length = 20, nullable = false, columnDefinition = "VARCHAR default 'Unpaid'") -
src/main/java/com/example/rezevirajmasa/demo/model/Restaurant.java
re15e8d9 r2518b3a 41 41 private BigDecimal rating; 42 42 43 @Json Ignore43 @JsonManagedReference 44 44 @OneToMany(mappedBy = "restaurant", cascade = CascadeType.ALL, fetch = FetchType.LAZY) 45 45 private List<TableEntity> tablesList; -
src/main/java/com/example/rezevirajmasa/demo/model/TableEntity.java
re15e8d9 r2518b3a 29 29 30 30 @JsonBackReference 31 @ManyToOne(fetch = FetchType. EAGER)31 @ManyToOne(fetch = FetchType.LAZY) 32 32 @JoinColumn(name = "RestaurantID") 33 33 private Restaurant restaurant; -
src/main/java/com/example/rezevirajmasa/demo/service/ReservationService.java
re15e8d9 r2518b3a 11 11 12 12 public interface ReservationService { 13 public Reservation makeReservationRest(ReservationDTO reservation, User user );13 public Reservation makeReservationRest(ReservationDTO reservation, User user, Restaurant restaurant); 14 14 public List<Reservation> listAll(); 15 15 public Reservation updateReservation(Long reservationId, ReservationDTO reservationDTO, User user); -
src/main/java/com/example/rezevirajmasa/demo/service/impl/ReservationImpl.java
re15e8d9 r2518b3a 26 26 27 27 import javax.swing.text.html.Option; 28 import java.math.BigDecimal; 28 29 import java.time.LocalDateTime; 29 30 import java.time.LocalTime; 30 31 import java.time.format.DateTimeFormatter; 32 import java.util.ArrayList; 31 33 import java.util.List; 32 34 import java.util.Optional; … … 55 57 56 58 @Override 57 public Reservation makeReservationRest(ReservationDTO reservationDTO, User user ) {59 public Reservation makeReservationRest(ReservationDTO reservationDTO, User user, Restaurant restaurant) { 58 60 Reservation reservation = new Reservation(); 59 61 … … 92 94 reservation.setPaymentStatus(reservationDTO.getPaymentStatus() != null ? reservationDTO.getPaymentStatus() : "Unpaid"); 93 95 reservation.setUser(user); 94 reservation.setPreOrderedItems(reservationDTO.getPreOrderedItems()); 95 reservation.setRestaurant(reservationDTO.getRestaurant()); 96 97 List<PreorderedItem> preOrderedItems = new ArrayList<>(); 98 99 for (PreorderedItem dtoItem : reservationDTO.getPreOrderedItems()) { 100 PreorderedItem item = new PreorderedItem(); 101 item.setName(dtoItem.getName()); 102 item.setQuantity(dtoItem.getQuantity()); 103 item.setPrice(dtoItem.getPrice()); 104 item.setReservation(reservation); 105 106 preOrderedItems.add(item); 107 } 108 109 reservation.setPreOrderedItems(preOrderedItems); 110 reservation.setRestaurant(restaurant); 96 111 reservation.setCheckInTime(reservationDTO.getReservationDateTime().plusHours(1)); 97 112 reservation.setReservationDateTime(LocalDateTime.now()); 98 113 reservation.setCheckOutTime(reservationDTO.getReservationDateTime().plusHours(3)); 99 reservation.setRestaurant(reservationDTO.getRestaurant());100 114 101 115 return reservationRepository.save(reservation); -
src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java
re15e8d9 r2518b3a 181 181 182 182 @PostMapping("/api/reservations") 183 public ResponseEntity<?> createReservation(@RequestBody ReservationDTO reservation) { 184 User user = userService.findByMail(reservation.getUserEmail()); 185 Reservation savedReservation = reservationService.makeReservationRest(reservation, user); 183 public ResponseEntity<?> createReservation(@RequestBody ReservationDTO reservation){ 184 User user = userService.findByMail(reservation.getUserEmail()); 185 Restaurant restaurant = restaurantService.findByIdRestaurant(reservation.getRestaurantId()); 186 Reservation savedReservation = reservationService.makeReservationRest(reservation, user, restaurant); 186 187 187 188 return new ResponseEntity<>(savedReservation, HttpStatus.CREATED); … … 227 228 @PathVariable String email) { 228 229 User user = userService.findByMail(email); 229 230 Restaurant restaurant = restaurantService.findByIdRestaurant(reservationDTO.getRestaurantId()); 230 231 if (!reservationDTO.getReservationID().equals(reservationId)) { 231 232 return ResponseEntity.badRequest().build();
Note:
See TracChangeset
for help on using the changeset viewer.