/* Options: Date: 2025-10-16 21:48:19 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateBookingUserQueue.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* @Route(Path="/bookinguserqueue", Verbs="POST") open class CreateBookingUserQueue : IReturn { open var CompanyId:UUID? = null open var CustomerId:UUID? = null open var Customer:CustomerToHandle? = null open var InvoiceAddress:InvoiceAddressToHandle? = null open var ServiceId:Int? = null open var From:Date? = null open var To:Date? = null open var Quantities:ArrayList = ArrayList() /** * If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be saved */ @ApiMember(Description="If Custom Fields are added to the booking, here you will send the id and the value for each custom field to be saved") open var CustomFields:ArrayList = ArrayList() companion object { private val responseType = BookingUserQueueItemResponse::class.java } override fun getResponseType(): Any? = CreateBookingUserQueue.responseType } open class BookingUserQueueItemResponse { open var BookingUserQueueId:Int? = null open var CompanyId:UUID? = null open var CustomerId:UUID? = null open var ServiceId:Int? = null open var From:Date? = null open var To:Date? = null open var StatusCode:Int? = null open var StatusName:String? = null open var SendConfirmationTime:Date? = null open var Quantities:ArrayList = ArrayList() open var Service:ServiceInfoResponse? = null open var Company:CompanyInfoResponse? = null } open class AddCustomField { open var Id:Int? = null open var Value:String? = null } open class CustomerToHandle : CustomerBase() { } open class InvoiceAddressToHandle : IInvoiceAddress { override var CorporateIdentityNumber:String? = null override var InvoiceAddress1:String? = null override var InvoiceAddress2:String? = null override var InvoiceCity:String? = null override var InvoicePostalCode:String? = null override var InvoiceCountryCode: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) open 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) open 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.") open var OccupiesSpot:Boolean? = null } open class CustomerBase : ICustomerBase { override var CustomerId:UUID? = null override var Firstname:String? = null override var Lastname:String? = null override var Email:String? = null override var Phone:String? = null override var SubscribedToNewsletter:Boolean? = null } interface ICustomerBase { var CustomerId:UUID? var Firstname:String? var Lastname:String? var Email:String? var Phone:String? var SubscribedToNewsletter:Boolean? } open class GroupBookingSettings { open var Active:Boolean? = null open var Min:Int? = null open var Max:Int? = null } open class MultipleResourceSettings { open var Active:Boolean? = null open var Min:Int? = null open var Max:Int? = null } open class BookingUserQueuePriceResponse { open var CompanyId:UUID? = null open var Id:Int? = null open var BookingUserQueueId:Int? = null open var ServicePriceId:Int? = null open var Quantity:Int? = null } open class ServiceInfoResponse { open var Id:Int? = null open var Name:String? = null open var Description:String? = null open var ImageUrl:Uri? = null open var LengthInMinutes:Int? = null open var MaxNumberOfSpotsPerBooking:Int? = null open var MinNumberOfSpotsPerBooking:Int? = null open var GroupBooking:GroupBookingSettings? = null open var MultipleResource:MultipleResourceSettings? = null open var IsGroupBooking:Boolean? = null open var IsPaymentEnabled:Boolean? = null } open class CompanyInfoResponse { open var Id:UUID? = null open var Name:String? = null open var LogoType:Uri? = null open var Category:String? = null open var Street1:String? = null open var Street2:String? = null open var ZipCode:String? = null open var City:String? = null open var CountryId:String? = null open var Longitude:String? = null open var Latitude:String? = null open var Phone:String? = null open var Email:String? = null open var HomePage:String? = null open var SitePath:String? = null } interface IInvoiceAddress { var CorporateIdentityNumber:String? var InvoiceAddress1:String? var InvoiceAddress2:String? var InvoiceCity:String? var InvoicePostalCode:String? var InvoiceCountryCode:String? }