package com.android.trisolarisserver.controller.dto import java.util.UUID data class BookingCheckInRequest( val roomIds: List, val checkInAt: String? = null, val transportMode: String? = null, val nightlyRate: Long? = null, val rateSource: String? = null, val ratePlanCode: String? = null, val currency: String? = null, val notes: String? = null ) 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 ) data class BookingBulkCheckInRequest( val stays: List, val transportMode: String? = null, val notes: String? = null ) data class BookingCreateRequest( val source: String? = null, val expectedCheckInAt: String, val expectedCheckOutAt: String, val guestPhoneE164: String? = null, val fromCity: String? = null, val toCity: String? = null, val memberRelation: String? = null, val transportMode: String? = null, val childCount: Int? = null, val maleCount: Int? = null, val femaleCount: Int? = null, val expectedGuestCount: Int? = null, val notes: String? = null ) data class BookingCreateResponse( val id: UUID, val status: String, val guestId: UUID?, val checkInAt: String?, val expectedCheckInAt: String?, val expectedCheckOutAt: String? ) data class BookingListItem( val id: UUID, val status: String, val guestId: UUID?, val guestName: String?, val guestPhone: String?, val roomNumbers: List, val source: String?, val expectedCheckInAt: String?, val expectedCheckOutAt: String?, val checkInAt: String?, val checkOutAt: String?, val adultCount: Int?, val childCount: Int?, val maleCount: Int?, val femaleCount: Int?, val totalGuestCount: Int?, val expectedGuestCount: Int?, val notes: String?, val pending: Long? = null ) data class BookingDetailResponse( val id: UUID, val status: String, val guestId: UUID?, val guestName: String?, val guestPhone: String?, val guestNationality: String?, val guestAddressText: String?, val guestAge: String?, val guestSignatureUrl: String?, val vehicleNumbers: List, val roomNumbers: List, val source: String?, val fromCity: String?, val toCity: String?, val memberRelation: String?, val transportMode: String?, val checkInAt: String?, val checkOutAt: String?, val expectedCheckInAt: String?, val expectedCheckOutAt: String?, val adultCount: Int?, val childCount: Int?, val maleCount: Int?, val femaleCount: Int?, val totalGuestCount: Int?, val expectedGuestCount: Int?, val notes: String?, val registeredByName: String?, val registeredByPhone: String?, val totalNightlyRate: Long, val expectedPay: Long, val amountCollected: Long, val pending: Long ) data class BookingLinkGuestRequest( val guestId: UUID ) data class BookingExpectedDatesUpdateRequest( val expectedCheckInAt: String? = null, val expectedCheckOutAt: String? = null ) data class BookingCheckOutRequest( val checkOutAt: String? = null, val notes: String? = null ) data class BookingCancelRequest( val cancelledAt: String? = null, val reason: String? = null ) data class BookingNoShowRequest( val noShowAt: String? = null, val reason: String? = null ) data class RoomChangeRequest( val newRoomId: UUID, val movedAt: String? = null, val idempotencyKey: String ) data class RoomChangeResponse( val oldRoomStayId: UUID, val newRoomStayId: UUID, val oldRoomId: UUID, val newRoomId: UUID, val movedAt: String ) data class RoomStayPreAssignRequest( val roomId: UUID, val fromAt: String, val toAt: String, val nightlyRate: Long? = null, val rateSource: String? = null, val ratePlanCode: String? = null, val currency: String? = null, val notes: String? = null ) data class IssueCardRequest( val cardId: String, val cardIndex: Int, val issuedAt: String? = null, val expiresAt: String ) data class IssueTempCardRequest( val cardId: String, val cardIndex: Int, val issuedAt: String? = null ) data class IssuedCardResponse( val id: UUID, val propertyId: UUID, val roomId: UUID, val roomStayId: UUID?, val cardId: String, val cardIndex: Int, val issuedAt: String, val expiresAt: String, val issuedByUserId: UUID?, val revokedAt: String? ) data class CardPrepareRequest( val expiresAt: String? = null ) data class CardPrepareResponse( val cardIndex: Int, val key: String, val timeData: String, val issuedAt: String, val expiresAt: String, val sector3Block0: String? = null, val sector3Block1: String? = null, val sector3Block2: String? = null ) data class CardRevokeResponse( val timeData: String )