diff --git a/src/main/java/site/campingon/campingon/camp/controller/CampSiteController.java b/src/main/java/site/campingon/campingon/camp/controller/CampSiteController.java index c8c65717..737fa11c 100644 --- a/src/main/java/site/campingon/campingon/camp/controller/CampSiteController.java +++ b/src/main/java/site/campingon/campingon/camp/controller/CampSiteController.java @@ -1,18 +1,16 @@ package site.campingon.campingon.camp.controller; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.format.annotation.DateTimeFormat; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import site.campingon.campingon.camp.dto.CampSiteListResponseDto; import site.campingon.campingon.camp.dto.CampSiteResponseDto; import site.campingon.campingon.camp.service.CampSiteReserveService; import site.campingon.campingon.camp.service.CampSiteService; -import site.campingon.campingon.common.exception.ErrorCode; -import site.campingon.campingon.common.exception.GlobalException; -import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; @@ -28,18 +26,12 @@ public class CampSiteController { // 캠핑장의 예약가능한 캠핑지 목록 조회 @GetMapping("/{campId}/available") public ResponseEntity> getAvailableCampSites(@PathVariable("campId") Long campId, - @RequestParam(value = "checkin") - @DateTimeFormat(pattern = "yyyy-MM-dd") - LocalDate checkin, - + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Seoul") + LocalDateTime checkin, @RequestParam(value = "checkout") - @DateTimeFormat(pattern = "yyyy-MM-dd") - LocalDate checkout) { - - if (checkin == null || checkout == null) { - throw new GlobalException(ErrorCode.REQUIRED_RESERVATION_DATE); - } + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Seoul") + LocalDateTime checkout) { return ResponseEntity.ok(campSiteReserveService.getAvailableCampSites(campId, checkin, checkout)); } @@ -48,20 +40,14 @@ public ResponseEntity> getAvailableCampSites(@Path @GetMapping("/{campId}/sites/{siteId}") public ResponseEntity getCampSite(@PathVariable("campId") Long campId, @PathVariable("siteId") Long siteId, - @RequestParam(value = "checkin") - @DateTimeFormat(pattern = "yyyy-MM-dd") - LocalDate checkin, - + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Seoul") + LocalDateTime checkin, @RequestParam(value = "checkout") - @DateTimeFormat(pattern = "yyyy-MM-dd") - LocalDate checkout) { - - if (checkin == null || checkout == null) { - throw new GlobalException(ErrorCode.REQUIRED_RESERVATION_DATE); - } + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Seoul") + LocalDateTime checkout) { - return ResponseEntity.ok(campSiteService.getCampSite(campId, siteId)); + return ResponseEntity.ok(campSiteService.getCampSite(campId, siteId, checkin, checkout)); } } diff --git a/src/main/java/site/campingon/campingon/camp/dto/CampSiteListResponseDto.java b/src/main/java/site/campingon/campingon/camp/dto/CampSiteListResponseDto.java index 510a2540..360cf03d 100644 --- a/src/main/java/site/campingon/campingon/camp/dto/CampSiteListResponseDto.java +++ b/src/main/java/site/campingon/campingon/camp/dto/CampSiteListResponseDto.java @@ -1,11 +1,11 @@ package site.campingon.campingon.camp.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; import site.campingon.campingon.camp.entity.Induty; -import site.campingon.campingon.reservation.entity.CheckTime; -import java.time.LocalTime; +import java.time.LocalDateTime; @ToString @Getter @@ -18,10 +18,9 @@ public class CampSiteListResponseDto { private Integer price; private Induty siteType; private String indoorFacility; - - @Builder.Default - private CheckTime checkinTime = CheckTime.CHECKIN; - @Builder.Default - private CheckTime checkoutTime = CheckTime.CHECKOUT; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") + private LocalDateTime checkinTime; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") + private LocalDateTime checkoutTime; } \ No newline at end of file diff --git a/src/main/java/site/campingon/campingon/camp/dto/CampSiteResponseDto.java b/src/main/java/site/campingon/campingon/camp/dto/CampSiteResponseDto.java index f830a877..4b121cde 100644 --- a/src/main/java/site/campingon/campingon/camp/dto/CampSiteResponseDto.java +++ b/src/main/java/site/campingon/campingon/camp/dto/CampSiteResponseDto.java @@ -1,10 +1,10 @@ package site.campingon.campingon.camp.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; import site.campingon.campingon.camp.entity.Induty; -import site.campingon.campingon.reservation.entity.CheckTime; -import java.time.LocalTime; +import java.time.LocalDateTime; @ToString @Getter @@ -17,11 +17,10 @@ public class CampSiteResponseDto { private Integer price; private Induty siteType; private String indoorFacility; - - @Builder.Default - private CheckTime checkinTime = CheckTime.CHECKIN; - @Builder.Default - private CheckTime checkoutTime = CheckTime.CHECKOUT; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") + private LocalDateTime checkinTime; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") + private LocalDateTime checkoutTime; CampSimpleDto campSimpleDto; } \ No newline at end of file diff --git a/src/main/java/site/campingon/campingon/camp/repository/CampSiteRepository.java b/src/main/java/site/campingon/campingon/camp/repository/CampSiteRepository.java index d3abd804..d22544c4 100644 --- a/src/main/java/site/campingon/campingon/camp/repository/CampSiteRepository.java +++ b/src/main/java/site/campingon/campingon/camp/repository/CampSiteRepository.java @@ -8,7 +8,7 @@ import site.campingon.campingon.camp.entity.CampSite; import site.campingon.campingon.camp.entity.Induty; -import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; import java.util.Optional; @@ -47,10 +47,10 @@ public interface CampSiteRepository extends JpaRepository { "WHERE cs.isAvailable = true " + "AND cs.camp.id = :campId " + "AND (r.id IS NULL OR " + - " (r.status = 'CANCELED' AND r.checkinDate < :checkout AND r.checkoutDate > :checkin)) " + + " (r.status = 'CANCELED' AND r.checkin < :checkout AND r.checkout > :checkin)) " + "ORDER BY cs.id ASC") List findAvailableCampSites(@Param("campId") Long campId, - @Param("checkin") LocalDate checkin, - @Param("checkout") LocalDate checkout); + @Param("checkin") LocalDateTime checkin, + @Param("checkout") LocalDateTime checkout); } \ No newline at end of file diff --git a/src/main/java/site/campingon/campingon/camp/service/CampSiteReserveService.java b/src/main/java/site/campingon/campingon/camp/service/CampSiteReserveService.java index a82c961a..93391ee8 100644 --- a/src/main/java/site/campingon/campingon/camp/service/CampSiteReserveService.java +++ b/src/main/java/site/campingon/campingon/camp/service/CampSiteReserveService.java @@ -12,7 +12,7 @@ import site.campingon.campingon.common.exception.ErrorCode; import site.campingon.campingon.common.exception.GlobalException; -import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; @@ -28,7 +28,11 @@ public class CampSiteReserveService { // 캠핑장의 예약 가능한 SiteType 별 캠핑지 조회 @Transactional(readOnly = true) - public List getAvailableCampSites(Long campId, LocalDate checkin, LocalDate checkout) { + public List getAvailableCampSites(Long campId, LocalDateTime checkin, LocalDateTime checkout) { + + if (checkin == null || checkout == null) { + throw new GlobalException(ErrorCode.REQUIRED_RESERVATION_DATE); + } campRepository.findById(campId) .orElseThrow(() -> new GlobalException(ErrorCode.CAMP_NOT_FOUND_BY_ID)); diff --git a/src/main/java/site/campingon/campingon/camp/service/CampSiteService.java b/src/main/java/site/campingon/campingon/camp/service/CampSiteService.java index e653bd4d..81cee72e 100644 --- a/src/main/java/site/campingon/campingon/camp/service/CampSiteService.java +++ b/src/main/java/site/campingon/campingon/camp/service/CampSiteService.java @@ -15,6 +15,7 @@ import site.campingon.campingon.common.exception.ErrorCode; import site.campingon.campingon.common.exception.GlobalException; +import java.time.LocalDateTime; import java.util.List; @Service @@ -71,7 +72,7 @@ public List getCampSites(Long campId) { .toList(); } - // 특정 캠핑지 조회 + // 어드민을 위한 특정 캠핑지 조회 @Transactional(readOnly = true) public CampSiteResponseDto getCampSite(Long campId, Long siteId) { @@ -81,6 +82,20 @@ public CampSiteResponseDto getCampSite(Long campId, Long siteId) { return campSiteMapper.toCampSiteResponseDto(campSite); } + // 예약가능한 특정 캠핑지 조회 + @Transactional(readOnly = true) + public CampSiteResponseDto getCampSite(Long campId, Long siteId, LocalDateTime checkin, LocalDateTime checkout) { + + if (checkin == null || checkout == null) { + throw new GlobalException(ErrorCode.REQUIRED_RESERVATION_DATE); + } + + CampSite campSite = campSiteRepository.findByIdAndCampId(siteId, campId) + .orElseThrow(() -> new GlobalException(ErrorCode.CAMPSITE_NOT_FOUND_BY_ID)); + + return campSiteMapper.toCampSiteResponseDto(campSite); + } + // isAvailable 상태를 토글하고 변경된 상태 반환 @Transactional public boolean toggleAvailability(Long campId, Long siteId) { diff --git a/src/main/java/site/campingon/campingon/common/converter/CheckTimeConverter.java b/src/main/java/site/campingon/campingon/common/converter/CheckTimeConverter.java deleted file mode 100644 index c4e6aec0..00000000 --- a/src/main/java/site/campingon/campingon/common/converter/CheckTimeConverter.java +++ /dev/null @@ -1,32 +0,0 @@ -package site.campingon.campingon.common.converter; - -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; -import site.campingon.campingon.common.exception.ErrorCode; -import site.campingon.campingon.common.exception.GlobalException; -import site.campingon.campingon.reservation.entity.CheckTime; - -import java.sql.Time; -import java.util.Arrays; - -@Converter(autoApply = true) -public class CheckTimeConverter implements AttributeConverter { - - // DB에 저장할 때 (LocalTime -> Time) - @Override - public Time convertToDatabaseColumn(CheckTime checkTime) { - - return Time.valueOf(checkTime.getTime()); - } - - // DB에 꺼내서 조회할 때 (Time -> LocalTime) - @Override - public CheckTime convertToEntityAttribute(Time dbData) { - - return Arrays.stream(CheckTime.values()) - .filter(checkTime -> checkTime.getTime().equals(dbData.toLocalTime())) - .findFirst() - .orElseThrow(() -> new GlobalException(ErrorCode.RESERVATION_INVALID_CHECKTIME)); - - } -} \ No newline at end of file diff --git a/src/main/java/site/campingon/campingon/common/exception/ErrorCode.java b/src/main/java/site/campingon/campingon/common/exception/ErrorCode.java index fd5f2e19..77250fa1 100644 --- a/src/main/java/site/campingon/campingon/common/exception/ErrorCode.java +++ b/src/main/java/site/campingon/campingon/common/exception/ErrorCode.java @@ -44,7 +44,6 @@ public enum ErrorCode { RESERVATION_ALREADY_CANCELED(HttpStatus.BAD_REQUEST, "RESERVATION-003", "이미 취소된 예약입니다."), RESERVATION_ALREADY_COMPLETE(HttpStatus.BAD_REQUEST, "RESERVATION-004", "이미 지난 예약입니다."), RESERVATION_NOT_COMPLETED_FOR_REVIEW(HttpStatus.BAD_REQUEST, "RESERVATION-005", "후기는 체크인이 완료된 상태에서만 작성할 수 있습니다."), - RESERVATION_INVALID_CHECKTIME(HttpStatus.BAD_REQUEST, "RESERVATION-006", "유효하지 않은 체크인/체크아웃 시간입니다."), BOOKMARK_USER_NOT_FOUND(HttpStatus.NOT_FOUND, "BOOKMARK-001", "북유찾없"), FORBIDDEN_ACCESS(HttpStatus.FORBIDDEN, "미완", "잘못된 접근입니다."), diff --git a/src/main/java/site/campingon/campingon/reservation/dto/ReservationCreateRequestDto.java b/src/main/java/site/campingon/campingon/reservation/dto/ReservationCreateRequestDto.java index 01d1121e..54ee53c0 100644 --- a/src/main/java/site/campingon/campingon/reservation/dto/ReservationCreateRequestDto.java +++ b/src/main/java/site/campingon/campingon/reservation/dto/ReservationCreateRequestDto.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import lombok.*; -import java.time.LocalDate; +import java.time.LocalDateTime; @Getter @ToString @@ -15,11 +15,11 @@ public class ReservationCreateRequestDto { private Long campSiteId; - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate checkin; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Seoul") + private LocalDateTime checkin; - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate checkout; + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Seoul") + private LocalDateTime checkout; private int guestCnt; diff --git a/src/main/java/site/campingon/campingon/reservation/dto/ReservationResponseDto.java b/src/main/java/site/campingon/campingon/reservation/dto/ReservationResponseDto.java index f30dca91..1a7d37a1 100644 --- a/src/main/java/site/campingon/campingon/reservation/dto/ReservationResponseDto.java +++ b/src/main/java/site/campingon/campingon/reservation/dto/ReservationResponseDto.java @@ -1,10 +1,9 @@ package site.campingon.campingon.reservation.dto; import lombok.*; -import site.campingon.campingon.reservation.entity.CheckTime; import site.campingon.campingon.reservation.entity.ReservationStatus; -import java.time.LocalDate; +import java.time.LocalDateTime; @Getter @ToString @@ -15,13 +14,9 @@ public class ReservationResponseDto { private Long id; - private LocalDate checkinDate; + private LocalDateTime checkin; - private LocalDate checkoutDate; - - private CheckTime checkinTime; - - private CheckTime checkoutTime; + private LocalDateTime checkout; private int guestCnt; diff --git a/src/main/java/site/campingon/campingon/reservation/entity/CheckTime.java b/src/main/java/site/campingon/campingon/reservation/entity/CheckTime.java deleted file mode 100644 index 53b53ad4..00000000 --- a/src/main/java/site/campingon/campingon/reservation/entity/CheckTime.java +++ /dev/null @@ -1,24 +0,0 @@ -package site.campingon.campingon.reservation.entity; - -import com.fasterxml.jackson.annotation.JsonValue; -import lombok.AllArgsConstructor; -import lombok.Getter; - -import java.time.LocalTime; -import java.time.format.DateTimeFormatter; - -@Getter -@AllArgsConstructor -public enum CheckTime { - CHECKIN(LocalTime.of(15, 0)), - CHECKOUT(LocalTime.of(11, 0)); - - private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("HH:mm"); - private final LocalTime time; - - @JsonValue - public String getFormattedTime() { - return time.format(FORMATTER); - } - -} \ No newline at end of file diff --git a/src/main/java/site/campingon/campingon/reservation/entity/Reservation.java b/src/main/java/site/campingon/campingon/reservation/entity/Reservation.java index ed0d9220..8d94a874 100644 --- a/src/main/java/site/campingon/campingon/reservation/entity/Reservation.java +++ b/src/main/java/site/campingon/campingon/reservation/entity/Reservation.java @@ -8,7 +8,8 @@ import site.campingon.campingon.review.entity.Review; import site.campingon.campingon.user.entity.User; -import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; @Entity @Getter @@ -38,27 +39,18 @@ public class Reservation extends BaseEntity { @OneToOne(mappedBy = "reservation", fetch = FetchType.EAGER) private Review review; - @Column(nullable = false, columnDefinition = "DATE") - private LocalDate checkinDate; + @Column(nullable = false, columnDefinition = "DATETIME(0)") + private LocalDateTime checkin; - @Column(nullable = false, columnDefinition = "DATE") - private LocalDate checkoutDate; - - @Builder.Default - @Column(nullable = false, columnDefinition = "TIME(0)") - private CheckTime checkinTime = CheckTime.CHECKIN; - - @Builder.Default - @Column(nullable = false, columnDefinition = "TIME(0)") - private CheckTime checkoutTime = CheckTime.CHECKOUT; + @Column(nullable = false, columnDefinition = "DATETIME(0)") + private LocalDateTime checkout; @Column(nullable = false) private int guestCnt; - @Builder.Default @Enumerated(EnumType.STRING) @Column(nullable = false, columnDefinition = "VARCHAR(20) DEFAULT 'RESERVED'") - private ReservationStatus status = ReservationStatus.RESERVED; + private ReservationStatus status; private String cancelReason; @@ -70,4 +62,9 @@ public void cancel(String reason) { this.cancelReason = reason; } + public void setDefaultCheckTime(LocalDateTime checkinDate, LocalDateTime checkoutDate) { + this.checkin = checkinDate.withHour(15).truncatedTo(ChronoUnit.HOURS); + this.checkout = checkoutDate.withHour(11).truncatedTo(ChronoUnit.HOURS); + } + } diff --git a/src/main/java/site/campingon/campingon/reservation/mapper/ReservationMapper.java b/src/main/java/site/campingon/campingon/reservation/mapper/ReservationMapper.java index 7ee2cccd..2992b242 100644 --- a/src/main/java/site/campingon/campingon/reservation/mapper/ReservationMapper.java +++ b/src/main/java/site/campingon/campingon/reservation/mapper/ReservationMapper.java @@ -20,8 +20,7 @@ ArrayList.class }) public interface ReservationMapper { - @Mapping(source = "checkin", target = "checkinDate") - @Mapping(source = "checkout", target = "checkoutDate") + Reservation toEntity(ReservationCreateRequestDto reservationRequest); Reservation toEntity(ReservationCancelRequestDto reservationRequest); diff --git a/src/main/java/site/campingon/campingon/reservation/repository/ReservationRepository.java b/src/main/java/site/campingon/campingon/reservation/repository/ReservationRepository.java index d6456e42..c429d991 100644 --- a/src/main/java/site/campingon/campingon/reservation/repository/ReservationRepository.java +++ b/src/main/java/site/campingon/campingon/reservation/repository/ReservationRepository.java @@ -19,7 +19,7 @@ public interface ReservationRepository extends JpaRepository "ORDER BY CASE " + "WHEN r.status = 'RESERVED' THEN 0 " + "WHEN r.status = 'COMPLETED' THEN 1 " + - "ELSE 2 END, r.checkinDate ASC") + "ELSE 2 END, r.checkin ASC") Page findReservationsByUserId(Long userId, Pageable pageable); // 특정 예약의 상세 정보 조회 (연관된 캠프, 주소 정보 포함) @@ -27,7 +27,7 @@ public interface ReservationRepository extends JpaRepository Optional findById(Long id); // 예약완료 상태 중 체크인일자가 가까운 예약 정보 조회 - @Query("SELECT r FROM Reservation r WHERE r.user.id = :userId AND r.status = 'RESERVED' ORDER BY r.checkinDate ASC LIMIT 1") + @Query("SELECT r FROM Reservation r WHERE r.user.id = :userId AND r.status = 'RESERVED' ORDER BY r.checkin ASC LIMIT 1") Reservation findUpcomingReservationByUserId(Long userId); diff --git a/src/main/java/site/campingon/campingon/reservation/service/ReservationServiceImpl.java b/src/main/java/site/campingon/campingon/reservation/service/ReservationServiceImpl.java index a38dc106..cf3a61a2 100644 --- a/src/main/java/site/campingon/campingon/reservation/service/ReservationServiceImpl.java +++ b/src/main/java/site/campingon/campingon/reservation/service/ReservationServiceImpl.java @@ -9,6 +9,7 @@ import site.campingon.campingon.camp.entity.CampSite; import site.campingon.campingon.camp.mapper.CampSiteMapper; import site.campingon.campingon.reservation.dto.*; +import site.campingon.campingon.reservation.entity.ReservationStatus; import site.campingon.campingon.reservation.repository.ReservationRepository; import site.campingon.campingon.reservation.mapper.ReservationMapper; import site.campingon.campingon.reservation.entity.Reservation; @@ -71,8 +72,11 @@ public void createReservation(Long userId, ReservationCreateRequestDto requestDt .user(user) .camp(camp) .campSite(campSite) + .status(ReservationStatus.RESERVED) .build(); + reservation.setDefaultCheckTime(requestDto.getCheckin(), requestDto.getCheckout()); + reservationRepository.save(reservation); } diff --git a/src/main/java/site/campingon/campingon/reservation/utils/ReservationValidate.java b/src/main/java/site/campingon/campingon/reservation/utils/ReservationValidate.java index 38c9869b..721ba08a 100644 --- a/src/main/java/site/campingon/campingon/reservation/utils/ReservationValidate.java +++ b/src/main/java/site/campingon/campingon/reservation/utils/ReservationValidate.java @@ -23,6 +23,7 @@ public class ReservationValidate { private final CampSiteRepository campSiteRepository; private final CampRepository campRepository; + // REFACTOR: 쿼리최적화를 위해 발리데이션을 한번에 하는 방법? public Reservation validateReservationById(Long reservationId) { return reservationRepository.findById(reservationId) diff --git a/src/test/java/site/campingon/campingon/reservation/service/ReservationServiceTest.java b/src/test/java/site/campingon/campingon/reservation/service/ReservationServiceTest.java index 3d8a1acb..d389eb1c 100644 --- a/src/test/java/site/campingon/campingon/reservation/service/ReservationServiceTest.java +++ b/src/test/java/site/campingon/campingon/reservation/service/ReservationServiceTest.java @@ -24,7 +24,6 @@ import site.campingon.campingon.reservation.utils.ReservationValidate; import site.campingon.campingon.user.entity.User; -import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @@ -78,8 +77,8 @@ void setUp() { .id(1L) .camp(mockCamp) .campSite(mockCampSite) - .checkinDate(LocalDate.from(LocalDateTime.now())) - .checkoutDate(LocalDate.from(LocalDateTime.now().plusDays(1))) + .checkin(LocalDateTime.from(LocalDateTime.now())) + .checkout(LocalDateTime.from(LocalDateTime.now().plusDays(1))) .guestCnt(2) .status(ReservationStatus.RESERVED) .totalPrice(50000) @@ -139,8 +138,8 @@ void createReservationSuccess() { ReservationCreateRequestDto requestDto = new ReservationCreateRequestDto( mockCamp.getId(), mockCampSite.getId(), - LocalDate.now(), - LocalDate.now().plusDays(1), + LocalDateTime.now(), + LocalDateTime.now().plusDays(1), 2, 50000 ); @@ -190,8 +189,8 @@ void createReservationUserNotFound() { ReservationCreateRequestDto requestDto = new ReservationCreateRequestDto( mockCamp.getId(), mockCampSite.getId(), - LocalDate.now(), - LocalDate.now().plusDays(1), + LocalDateTime.now(), + LocalDateTime.now().plusDays(1), 2, 50000 ); @@ -213,8 +212,8 @@ void createReservationCampSiteNotFound() { ReservationCreateRequestDto requestDto = new ReservationCreateRequestDto( mockCamp.getId(), mockCampSite.getId(), - LocalDate.now(), - LocalDate.now().plusDays(1), + LocalDateTime.now(), + LocalDateTime.now().plusDays(1), 2, 50000 );