/* Options: Date: 2024-06-26 05:19:09 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateBookingUserQueue.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/bookinguserqueue", "POST") public class CreateBookingUserQueue : IReturn, Codable { public typealias Return = BookingUserQueueItemResponse public var companyId:String? public var customerId:String? public var customer:CustomerToBook public var serviceId:Int public var from:Date public var to:Date public var quantities:[QuantityToBook] = [] required public init(){} } public class BookingUserQueueItemResponse : Codable { public var bookingUserQueueId:Int public var companyId:String public var customerId:String public var serviceId:Int public var from:Date public var to:Date public var statusCode:Int public var statusName:String public var sendConfirmationTime:Date? public var quantities:[BookingUserQueuePriceResponse] = [] public var service:ServiceInfoResponse public var company:CompanyInfoResponse required public init(){} } public class CustomerToBook : Codable { /** * Customers firstname */ // @ApiMember(Description="Customers firstname", IsRequired=true) public var firstname:String /** * Customers lastname */ // @ApiMember(Description="Customers lastname", IsRequired=true) public var lastname:String /** * Customers email */ // @ApiMember(Description="Customers email", IsRequired=true) public var email:String /** * 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) public var phone:String required public init(){} } public class QuantityToBook : Codable { /** * 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) public var priceId:Int /** * 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) public var quantity:Int /** * 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.") public var occupiesSpot:Bool required public init(){} } public class GroupBookingSettings : Codable { public var active:Bool public var min:Int public var max:Int required public init(){} } public class MultipleResourceSettings : Codable { public var active:Bool public var min:Int public var max:Int required public init(){} } public class BookingUserQueuePriceResponse : Codable { public var companyId:String public var id:Int public var bookingUserQueueId:Int public var servicePriceId:Int? public var quantity:Int? required public init(){} } public class ServiceInfoResponse : Codable { public var id:Int public var name:String public var Description:String public var imageUrl:Uri public var lengthInMinutes:Int? public var maxNumberOfSpotsPerBooking:Int public var groupBooking:GroupBookingSettings public var multipleResource:MultipleResourceSettings public var isGroupBooking:Bool public var isPaymentEnabled:Bool required public init(){} } public class CompanyInfoResponse : Codable { public var id:String public var name:String public var logoType:Uri public var category:String public var street1:String public var street2:String public var zipCode:String public var city:String public var countryId:String public var longitude:String public var latitude:String public var phone:String public var email:String public var homePage:String public var sitePath:String required public init(){} }