Changeset 2518b3a for src


Ignore:
Timestamp:
05/02/25 00:37:10 (2 weeks ago)
Author:
Aleksandar Panovski <apano77@…>
Branches:
main
Children:
c44c5ed
Parents:
e15e8d9
Message:

Added menu tag

succesfull testing and implemnation

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  
    11package com.example.rezevirajmasa.demo.dto;
    22
     3import com.example.rezevirajmasa.demo.model.PreorderedItem;
    34import com.example.rezevirajmasa.demo.model.Reservation;
    45import com.example.rezevirajmasa.demo.model.Restaurant;
     
    1516    private LocalDateTime reservationDateTime;
    1617    private LocalDateTime checkInTime;
    17     private Restaurant restaurant;
     18    private Long restaurantId;
    1819    private int partySize;
    1920    private String status;
    2021    private String specialRequests;
    2122    private String paymentStatus;
    22     private List<String> preOrderedItems;
    23 
     23    private List<PreorderedItem> preOrderedItems;
    2424
    2525    public ReservationDTO() {
    2626    }
    2727
    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) {
    2929        this.reservationID = reservationID;
    3030        this.userEmail = userEmail;
     
    3333        this.reservationDateTime = reservationDateTime;
    3434        this.checkInTime = checkInTime;
    35         this.restaurant = restaurant;
     35        this.reservationID = restaurantId;
    3636        this.partySize = partySize;
    3737        this.status = status;
     
    4848        this.reservationDateTime = reservation.getReservationDateTime();
    4949        this.checkInTime = reservation.getCheckInTime();
    50         this.restaurant = reservation.getRestaurant();
     50        this.restaurantId = reservation.getRestaurant().getRestaurantId();
    5151        this.partySize = reservation.getPartySize();
    5252        this.status = reservation.getStatus();
     
    5454        this.paymentStatus = reservation.getPaymentStatus();
    5555        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;
    6456    }
    6557
     
    112104    }
    113105
    114     public Restaurant getRestaurant() {
    115         return restaurant;
     106    public Long getRestaurantId() {
     107        return restaurantId;
    116108    }
    117109
    118     public void setRestaurant(Restaurant restaurant) {
    119         this.restaurant = restaurant;
     110    public void setRestaurantId(Long restaurantId) {
     111        this.restaurantId = restaurantId;
    120112    }
    121113
     
    151143        this.paymentStatus = paymentStatus;
    152144    }
     145
     146    public List<PreorderedItem> getPreOrderedItems() {
     147        return preOrderedItems;
     148    }
     149
     150    public void setPreOrderedItems(List<PreorderedItem> preOrderedItems) {
     151        this.preOrderedItems = preOrderedItems;
     152    }
    153153}
  • src/main/java/com/example/rezevirajmasa/demo/model/Menu.java

    re15e8d9 r2518b3a  
    66
    77import java.math.BigDecimal;
     8import java.util.ArrayList;
     9import java.util.List;
    810
    911@Entity
     
    1315    @Id
    1416    @GeneratedValue(strategy = GenerationType.IDENTITY)
    15     @Column(name = "MenuID")
     17    @Column(name = "menu_id")
    1618    private Long menuID;
    1719
    1820    @ManyToOne
    19     @JoinColumn(name = "RestaurantID", nullable = false)
     21    @JoinColumn(name = "restaurant_id", nullable = false)
    2022    @JsonIgnore
    2123    private Restaurant restaurant;
    2224
    23     @Column(name = "ItemName", length = 100)
     25    @Column(name = "item_name", length = 100)
    2426    private String itemName;
    2527
    26     @Column(name = "Category", length = 50)
     28    @Column(name = "category", length = 50)
    2729    private String category;
    2830
    29     @Column(name = "Price", precision = 8, scale = 2)
     31    @Column(name = "price", precision = 8, scale = 2)
    3032    private BigDecimal price;
    3133
    32     @Column(name = "Description")
     34    @Column(name = "description")
    3335    private String description;
    3436
    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<>();
    3739
    3840    public Menu() {
    3941    }
    4042
    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;
    4245        this.restaurant = restaurant;
    4346        this.itemName = itemName;
     
    4548        this.price = price;
    4649        this.description = description;
    47         this.dietaryInformation = dietaryInformation;
     50        this.tags = tags;
    4851    }
    4952}
  • src/main/java/com/example/rezevirajmasa/demo/model/Reservation.java

    re15e8d9 r2518b3a  
    2626    @ManyToOne
    2727    @JoinColumn(name = "UserID")
    28     @JsonManagedReference
     28    @JsonBackReference(value = "user-reservations")
    2929    private User user;
    3030
     
    5757    private LocalDateTime checkOutTime;
    5858
    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<>();
    6365
    6466    @Column(name = "PaymentStatus", length = 20, nullable = false, columnDefinition = "VARCHAR default 'Unpaid'")
  • src/main/java/com/example/rezevirajmasa/demo/model/Restaurant.java

    re15e8d9 r2518b3a  
    4141    private BigDecimal rating;
    4242
    43     @JsonIgnore
     43    @JsonManagedReference
    4444    @OneToMany(mappedBy = "restaurant", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    4545    private List<TableEntity> tablesList;
  • src/main/java/com/example/rezevirajmasa/demo/model/TableEntity.java

    re15e8d9 r2518b3a  
    2929
    3030    @JsonBackReference
    31     @ManyToOne(fetch = FetchType.EAGER)
     31    @ManyToOne(fetch = FetchType.LAZY)
    3232    @JoinColumn(name = "RestaurantID")
    3333    private Restaurant restaurant;
  • src/main/java/com/example/rezevirajmasa/demo/service/ReservationService.java

    re15e8d9 r2518b3a  
    1111
    1212public interface ReservationService {
    13     public Reservation makeReservationRest(ReservationDTO reservation, User user);
     13    public Reservation makeReservationRest(ReservationDTO reservation, User user, Restaurant restaurant);
    1414    public List<Reservation> listAll();
    1515    public Reservation updateReservation(Long reservationId, ReservationDTO reservationDTO, User user);
  • src/main/java/com/example/rezevirajmasa/demo/service/impl/ReservationImpl.java

    re15e8d9 r2518b3a  
    2626
    2727import javax.swing.text.html.Option;
     28import java.math.BigDecimal;
    2829import java.time.LocalDateTime;
    2930import java.time.LocalTime;
    3031import java.time.format.DateTimeFormatter;
     32import java.util.ArrayList;
    3133import java.util.List;
    3234import java.util.Optional;
     
    5557
    5658    @Override
    57     public Reservation makeReservationRest(ReservationDTO reservationDTO, User user) {
     59    public Reservation makeReservationRest(ReservationDTO reservationDTO, User user, Restaurant restaurant) {
    5860        Reservation reservation = new Reservation();
    5961
     
    9294            reservation.setPaymentStatus(reservationDTO.getPaymentStatus() != null ? reservationDTO.getPaymentStatus() : "Unpaid");
    9395            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);
    96111            reservation.setCheckInTime(reservationDTO.getReservationDateTime().plusHours(1));
    97112            reservation.setReservationDateTime(LocalDateTime.now());
    98113            reservation.setCheckOutTime(reservationDTO.getReservationDateTime().plusHours(3));
    99             reservation.setRestaurant(reservationDTO.getRestaurant());
    100114
    101115            return reservationRepository.save(reservation);
  • src/main/java/com/example/rezevirajmasa/demo/web/rest/testController.java

    re15e8d9 r2518b3a  
    181181
    182182    @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);
    186187
    187188        return new ResponseEntity<>(savedReservation, HttpStatus.CREATED);
     
    227228                                                       @PathVariable String email) {
    228229        User user = userService.findByMail(email);
    229 
     230        Restaurant restaurant = restaurantService.findByIdRestaurant(reservationDTO.getRestaurantId());
    230231        if (!reservationDTO.getReservationID().equals(reservationId)) {
    231232            return ResponseEntity.badRequest().build();
Note: See TracChangeset for help on using the changeset viewer.