Include vehicle numbers in booking detail
All checks were successful
build-and-deploy / build-deploy (push) Successful in 33s
All checks were successful
build-and-deploy / build-deploy (push) Successful in 33s
This commit is contained in:
@@ -2,6 +2,7 @@ package com.android.trisolarisserver.controller
|
|||||||
|
|
||||||
import com.android.trisolarisserver.controller.dto.BookingDetailResponse
|
import com.android.trisolarisserver.controller.dto.BookingDetailResponse
|
||||||
import com.android.trisolarisserver.db.repo.BookingRepo
|
import com.android.trisolarisserver.db.repo.BookingRepo
|
||||||
|
import com.android.trisolarisserver.repo.GuestVehicleRepo
|
||||||
import com.android.trisolarisserver.repo.PaymentRepo
|
import com.android.trisolarisserver.repo.PaymentRepo
|
||||||
import com.android.trisolarisserver.repo.RoomStayRepo
|
import com.android.trisolarisserver.repo.RoomStayRepo
|
||||||
import org.springframework.http.HttpStatus
|
import org.springframework.http.HttpStatus
|
||||||
@@ -13,7 +14,8 @@ import java.util.UUID
|
|||||||
class BookingSnapshotBuilder(
|
class BookingSnapshotBuilder(
|
||||||
private val bookingRepo: BookingRepo,
|
private val bookingRepo: BookingRepo,
|
||||||
private val roomStayRepo: RoomStayRepo,
|
private val roomStayRepo: RoomStayRepo,
|
||||||
private val paymentRepo: PaymentRepo
|
private val paymentRepo: PaymentRepo,
|
||||||
|
private val guestVehicleRepo: GuestVehicleRepo
|
||||||
) {
|
) {
|
||||||
fun build(propertyId: UUID, bookingId: UUID): BookingDetailResponse {
|
fun build(propertyId: UUID, bookingId: UUID): BookingDetailResponse {
|
||||||
val booking = bookingRepo.findById(bookingId).orElseThrow {
|
val booking = bookingRepo.findById(bookingId).orElseThrow {
|
||||||
@@ -31,6 +33,14 @@ class BookingSnapshotBuilder(
|
|||||||
.sorted()
|
.sorted()
|
||||||
|
|
||||||
val guest = booking.primaryGuest
|
val guest = booking.primaryGuest
|
||||||
|
val vehicleNumbers = if (guest?.id != null) {
|
||||||
|
guestVehicleRepo.findByGuestIdIn(listOf(guest.id!!))
|
||||||
|
.map { it.vehicleNumber }
|
||||||
|
.distinct()
|
||||||
|
.sorted()
|
||||||
|
} else {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
val signatureUrl = guest?.signaturePath?.let {
|
val signatureUrl = guest?.signaturePath?.let {
|
||||||
"/properties/$propertyId/guests/${guest.id}/signature/file"
|
"/properties/$propertyId/guests/${guest.id}/signature/file"
|
||||||
}
|
}
|
||||||
@@ -50,6 +60,7 @@ class BookingSnapshotBuilder(
|
|||||||
guestNationality = guest?.nationality,
|
guestNationality = guest?.nationality,
|
||||||
guestAddressText = guest?.addressText,
|
guestAddressText = guest?.addressText,
|
||||||
guestSignatureUrl = signatureUrl,
|
guestSignatureUrl = signatureUrl,
|
||||||
|
vehicleNumbers = vehicleNumbers,
|
||||||
roomNumbers = roomNumbers,
|
roomNumbers = roomNumbers,
|
||||||
source = booking.source,
|
source = booking.source,
|
||||||
fromCity = booking.fromCity,
|
fromCity = booking.fromCity,
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ data class BookingDetailResponse(
|
|||||||
val guestNationality: String?,
|
val guestNationality: String?,
|
||||||
val guestAddressText: String?,
|
val guestAddressText: String?,
|
||||||
val guestSignatureUrl: String?,
|
val guestSignatureUrl: String?,
|
||||||
|
val vehicleNumbers: List<String>,
|
||||||
val roomNumbers: List<Int>,
|
val roomNumbers: List<Int>,
|
||||||
val source: String?,
|
val source: String?,
|
||||||
val fromCity: String?,
|
val fromCity: String?,
|
||||||
|
|||||||
Reference in New Issue
Block a user