1 | package com.example.rezevirajmasa.demo.service.impl;
|
---|
2 |
|
---|
3 | import com.example.rezevirajmasa.demo.model.Reservation;
|
---|
4 | import com.example.rezevirajmasa.demo.model.Restaurant;
|
---|
5 | import com.example.rezevirajmasa.demo.model.User;
|
---|
6 | import com.example.rezevirajmasa.demo.repository.ReservationHistoryRepository;
|
---|
7 | import com.example.rezevirajmasa.demo.service.ReservationHistoryService;
|
---|
8 | import org.springframework.stereotype.Service;
|
---|
9 |
|
---|
10 | import java.time.LocalDateTime;
|
---|
11 | import java.util.List;
|
---|
12 |
|
---|
13 | @Service
|
---|
14 | public class ReservationHistoryServiceImpl implements ReservationHistoryService {
|
---|
15 | private final ReservationHistoryRepository reservationHistoryRepository;
|
---|
16 |
|
---|
17 | public ReservationHistoryServiceImpl(ReservationHistoryRepository reservationHistoryRepository) {
|
---|
18 | this.reservationHistoryRepository = reservationHistoryRepository;
|
---|
19 | }
|
---|
20 |
|
---|
21 | @Override
|
---|
22 | public void moveReservationToHistory(Reservation reservation, String status, String cancellationReason) {
|
---|
23 | Restaurant.ReservationHistory history = new Restaurant.ReservationHistory();
|
---|
24 | history.setUser(reservation.getUser());
|
---|
25 | history.setTable(reservation.getTable());
|
---|
26 | history.setReservationDateTime(reservation.getReservationDateTime());
|
---|
27 | history.setPartySize(reservation.getPartySize());
|
---|
28 | history.setSpecialRequests(reservation.getSpecialRequests());
|
---|
29 | history.setStatus(status);
|
---|
30 | history.setCancellationReason(cancellationReason);
|
---|
31 | history.setRestaurant(reservation.getRestaurant());
|
---|
32 | history.setCheckInDate(reservation.getCheckInTime());
|
---|
33 | history.setCancellationReason(cancellationReason != null ? cancellationReason : "");
|
---|
34 |
|
---|
35 | reservationHistoryRepository.save(history);
|
---|
36 | }
|
---|
37 |
|
---|
38 | @Override
|
---|
39 | public List<Restaurant.ReservationHistory> findAll() {
|
---|
40 | return reservationHistoryRepository.findAll();
|
---|
41 | }
|
---|
42 |
|
---|
43 | @Override
|
---|
44 | public List<Restaurant.ReservationHistory> findByUser(User user) {
|
---|
45 | return reservationHistoryRepository.findALlByUser(user);
|
---|
46 | }
|
---|
47 |
|
---|
48 | @Override
|
---|
49 | public void moveReservationsToPast(List<Restaurant.ReservationHistory> reservationsToMove) {
|
---|
50 | for (Restaurant.ReservationHistory reservation : reservationsToMove) {
|
---|
51 | reservation.setStatus("Past");
|
---|
52 | }
|
---|
53 |
|
---|
54 | reservationHistoryRepository.saveAll(reservationsToMove);
|
---|
55 | }
|
---|
56 |
|
---|
57 | @Override
|
---|
58 | public List<Restaurant.ReservationHistory> findReservationsToMove(LocalDateTime currentTime) {
|
---|
59 | return reservationHistoryRepository.findAllByCheckInDateBefore(currentTime);
|
---|
60 | }
|
---|
61 | }
|
---|