From 247d6e4961203cc8a1c6b24511a9024fc3fecd59 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Mon, 2 Feb 2026 09:01:38 +0530 Subject: [PATCH] Disallow checkoutAt in bulk check-in stays --- .../controller/booking/BookingFlow.kt | 12 ------------ .../controller/dto/booking/BookingDtos.kt | 4 +++- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt b/src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt index 8b917cd..4222ea3 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/booking/BookingFlow.kt @@ -340,17 +340,9 @@ class BookingFlow( val now = OffsetDateTime.now() val checkInTimes = mutableListOf() - val checkOutTimes = mutableListOf() request.stays.forEach { stay -> val checkInAt = parseOffset(stay.checkInAt) ?: now checkInTimes.add(checkInAt) - val checkOutAt = parseOffset(stay.checkOutAt) - if (checkOutAt != null) { - if (!checkOutAt.isAfter(checkInAt)) { - throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Invalid date range for stay") - } - checkOutTimes.add(checkOutAt) - } val room = rooms.getValue(stay.roomId) val newStay = RoomStay( property = booking.property, @@ -368,12 +360,8 @@ class BookingFlow( } val bookingCheckInAt = checkInTimes.minOrNull() ?: now - val bookingExpectedCheckout = checkOutTimes.maxOrNull() booking.status = BookingStatus.CHECKED_IN booking.checkinAt = bookingCheckInAt - if (bookingExpectedCheckout != null) { - booking.expectedCheckoutAt = bookingExpectedCheckout - } booking.transportMode = request.transportMode?.let { val mode = parseTransportMode(it) if (!isTransportModeAllowed(booking.property, mode)) { diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/dto/booking/BookingDtos.kt b/src/main/kotlin/com/android/trisolarisserver/controller/dto/booking/BookingDtos.kt index b26f8b2..deebc09 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/dto/booking/BookingDtos.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/dto/booking/BookingDtos.kt @@ -1,17 +1,19 @@ package com.android.trisolarisserver.controller.dto.booking +import com.fasterxml.jackson.annotation.JsonIgnoreProperties import java.util.UUID +@JsonIgnoreProperties(ignoreUnknown = false) data class BookingCheckInStayRequest( val roomId: UUID, val checkInAt: String? = null, - val checkOutAt: String? = null, val nightlyRate: Long? = null, val rateSource: String? = null, val ratePlanCode: String? = null, val currency: String? = null ) +@JsonIgnoreProperties(ignoreUnknown = false) data class BookingBulkCheckInRequest( val stays: List, val transportMode: String? = null,