/* Options: Date: 2024-07-03 12:48:58 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateBookingUserQueue.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.* */ import java.math.* import java.util.* import net.servicestack.client.* @Route(Path="/bookinguserqueue", Verbs="POST") open class CreateBookingUserQueue : IReturn { var CompanyId:UUID? = null var CustomerId:UUID? = null var Customer:CustomerToBook? = null var ServiceId:Int? = null var From:Date? = null var To:Date? = null var Quantities:ArrayList = ArrayList() companion object { private val responseType = BookingUserQueueItemResponse::class.java } override fun getResponseType(): Any? = CreateBookingUserQueue.responseType } open class BookingUserQueueItemResponse { var BookingUserQueueId:Int? = null var CompanyId:UUID? = null var CustomerId:UUID? = null var ServiceId:Int? = null var From:Date? = null var To:Date? = null var StatusCode:Int? = null var StatusName:String? = null var SendConfirmationTime:Date? = null var Quantities:ArrayList = ArrayList() var Service:ServiceInfoResponse? = null var Company:CompanyInfoResponse? = null } open class CustomerToBook { /** * Customers firstname */ @ApiMember(Description="Customers firstname", IsRequired=true) var Firstname:String? = null /** * Customers lastname */ @ApiMember(Description="Customers lastname", IsRequired=true) var Lastname:String? = null /** * Customers email */ @ApiMember(Description="Customers email", IsRequired=true) var Email:String? = null /** * Customers phone number. Mobile phone number is required for SMS messages to be sent. */ @ApiMember(Description="Customers phone number. Mobile phone number is required for SMS messages to be sent.", IsRequired=true) var Phone:String? = null } open class QuantityToBook { /** * If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book) */ @ApiMember(Description="If service has a price, enter the price id for that price. If no price exists for the service set 0 as PriceId. If you put 0 and a price exists, it will use that price (only works if just one price exists for the current selected date to book)", IsRequired=true) var PriceId:Int? = null /** * Set the number of spots or resources you want to book on the specific price category */ @ApiMember(Description="Set the number of spots or resources you want to book on the specific price category", IsRequired=true) var Quantity:Int? = null /** * If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information. */ @ApiMember(Description="If the quantity you add should occupy a spot. Default is true. If no it will only be a row that includes price information.") var OccupiesSpot:Boolean? = null } open class GroupBookingSettings { var Active:Boolean? = null var Min:Int? = null var Max:Int? = null } open class MultipleResourceSettings { var Active:Boolean? = null var Min:Int? = null var Max:Int? = null } open class BookingUserQueuePriceResponse { var CompanyId:UUID? = null var Id:Int? = null var BookingUserQueueId:Int? = null var ServicePriceId:Int? = null var Quantity:Int? = null } open class ServiceInfoResponse { var Id:Int? = null var Name:String? = null var Description:String? = null var ImageUrl:Uri? = null var LengthInMinutes:Int? = null var MaxNumberOfSpotsPerBooking:Int? = null var GroupBooking:GroupBookingSettings? = null var MultipleResource:MultipleResourceSettings? = null var IsGroupBooking:Boolean? = null var IsPaymentEnabled:Boolean? = null } open class CompanyInfoResponse { var Id:UUID? = null var Name:String? = null var LogoType:Uri? = null var Category:String? = null var Street1:String? = null var Street2:String? = null var ZipCode:String? = null var City:String? = null var CountryId:String? = null var Longitude:String? = null var Latitude:String? = null var Phone:String? = null var Email:String? = null var HomePage:String? = null var SitePath:String? = null }