/* Options: Date: 2025-09-13 18:31:02 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: AddResourceToBooking.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/bookings/{Id}/resource", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403) // @ValidateRequest(Validator="IsAuthenticated") public class AddResourceToBooking : IReturn, ICompany, Codable { public typealias Return = BookingQueryResponse /** * The company id, if empty will use the company id for the user you are logged in with. */ // @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.") public var companyId:String? /** * Id of the booking */ // @ApiMember(Description="Id of the booking", IsRequired=true, ParameterType="path") public var id:Int? /** * The resource type id */ // @ApiMember(Description="The resource type id") public var resourceTypeId:Int? /** * The resource id */ // @ApiMember(Description="The resource id") public var resourceId:Int? required public init(){} } public class BookingQueryResponse : Codable { public var id:Int? public var companyId:String? public var from:Date? public var to:Date? public var status:BookingStatusEnum? public var statusId:Int? public var statusName:String? public var statusInfo:BookingStatusQueryResponse? public var sendEmailReminder:Bool? public var sendSmsReminder:Bool? public var sendSmsConfirmation:Bool? public var sendEmailConfirmation:Bool? public var lastTimeToUnBook:Date? public var customFields:[CustomFieldConfigData]? public var customFieldValues:[CustomFieldDataResponse]? public var bookedResourceTypes:[BookedResourceType]? public var company:BookedCompany? public var customer:BookedCustomer? public var quantities:[BookedQuantity]? public var service:ServiceInfoResponse? public var invoiceAddress:InvoiceAddressResponse? public var paymentExpiration:Date? public var log:[BookingLogQueryResponse]? public var paymentLog:[BookingPaymentLogQueryResponse]? public var checkoutLog:[BookingCheckoutQueryResponse]? public var externalReference:[ExternalReferenceResponse]? public var responseStatus:ResponseStatus? public var lengthInMinutes:Int? public var bookedBy:String? public var bookedComments:String? public var unbookedComments:String? public var commentsToCustomer:String? public var createdDate:Date? public var updatedDate:Date? public var unbookedOn:Date? public var cancellationCode:String? public var ratingCode:String? required public init(){} } public protocol ICompany { var companyId:String? { get set } } public class BookingStatusQueryResponse : Codable { public var id:Int? public var name:String? public var Description:String? public var icon:String? public var color:String? required public init(){} } public enum BookingStatusEnum : Int, Codable { case Booked = 1 case Unbooked = 2 case Reserved = 3 case Canceled = 4 case AwaitingPayment = 5 case AwaitingPaymentNoTimeLimit = 6 case Payed = 7 case AwaitingPaymentRequestFromAdmin = 8 case AwaitingPaymentFromProvider = 9 case Invoiced = 10 } public class InvoiceAddressResponse : Codable { public var invoiceAddressId:String? public var userId:String? public var corporateIdentityNumber:String? public var invoiceAddress1:String? public var invoiceAddress2:String? public var invoiceCity:String? public var invoicePostalCode:String? public var invoiceCountryCode:String? 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 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 minNumberOfSpotsPerBooking:Int? public var groupBooking:GroupBookingSettings? public var multipleResource:MultipleResourceSettings? public var isGroupBooking:Bool? public var isPaymentEnabled:Bool? required public init(){} } public class CustomFieldConfigData : Codable { /** * Custom field id */ // @ApiMember(Description="Custom field id") public var id:Int? /** * Configuration name. Example: 'Number of persons'. */ // @ApiMember(Description="Configuration name. Example: 'Number of persons'.") public var name:String? /** * Custom field description. Example: 'For how many persons is this booking?' */ // @ApiMember(Description="Custom field description. Example: 'For how many persons is this booking?'") public var Description:String? /** * Field width. Example: 20 for 20px */ // @ApiMember(Description="Field width. Example: 20 for 20px") public var width:Int? /** * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ // @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") public var dataType:String? /** * Default value of the field. Example: '3' */ // @ApiMember(Description="Default value of the field. Example: '3'") public var defaultValue:String? /** * Determines if the field is required to have a value or not */ // @ApiMember(Description="Determines if the field is required to have a value or not") public var isMandatory:Bool? /** * Error message shown to the user if the field data is required but not entered */ // @ApiMember(Description="Error message shown to the user if the field data is required but not entered") public var mandatoryErrorMessage:String? /** * Max lenght of the field */ // @ApiMember(Description="Max lenght of the field") public var maxLength:Int? /** * If the field should have multiple lines */ // @ApiMember(Description="If the field should have multiple lines") public var multipleLineText:Bool? /** * Regular expression used for validation of the field */ // @ApiMember(Description="Regular expression used for validation of the field") public var regEx:String? /** * Error message shown if the regular expression validation failed */ // @ApiMember(Description="Error message shown if the regular expression validation failed") public var regExErrorMessage:String? /** * The values to select from if Datatype is DropDown for this custom field */ // @ApiMember(Description="The values to select from if Datatype is DropDown for this custom field") public var values:[CustomFieldValueResponse]? required public init(){} } public class CustomFieldDataResponse : Codable { public var id:Int? public var column:String? public var name:String? public var Description:String? public var value:String? /** * Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox' */ // @ApiMember(Description="Data field of custom field. Valid values are: TextBox, ... Example: 'TextBox'") public var dataType:String? required public init(){} } public class BookedResourceType : Codable { /** * The resource type id */ // @ApiMember(Description="The resource type id") public var id:Int? /** * The resource type name */ // @ApiMember(Description="The resource type name") public var name:String? /** * The resources inside resource type */ // @ApiMember(Description="The resources inside resource type") public var resources:[BookedResource]? required public init(){} } public class BookedCompany : 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? public var isFavorite:Bool? public var paymentProviderId:Int? required public init(){} } public class BookedCustomer : Codable { public var id:String? public var firstname:String? public var lastname:String? public var email:String? public var phone:String? public var facebookUserName:String? public var imageUrl:String? public var corporateIdentityNumber:String? public var invoiceAddress1:String? public var invoiceAddress2:String? public var invoiceCity:String? public var invoicePostalCode:String? public var invoiceCountryCode:String? required public init(){} } public class BookingPaymentLogQueryResponse : Codable { /** * The booking payment log id */ // @ApiMember(Description="The booking payment log id") public var id:Int? /** * The booking id */ // @ApiMember(Description="The booking id") public var bookingId:Int? /** * The payment reference id */ // @ApiMember(Description="The payment reference id") public var paymentReferenceId:String? /** * The payment order item reference id */ // @ApiMember(Description="The payment order item reference id") public var orderItemReferenceId:String? /** * The payment reference id */ // @ApiMember(Description="The payment reference id") public var paymentProviderId:Int? /** * The payment amount */ // @ApiMember(Description="The payment amount") public var amount:Double? /** * The payment VAT in percent */ // @ApiMember(Description="The payment VAT in percent") public var vat:Double? /** * The payment amount that is credited */ // @ApiMember(Description="The payment amount that is credited") public var amountCredited:Double? /** * The payment currency id */ // @ApiMember(Description="The payment currency id") public var currencyId:String? /** * The payment currency info */ // @ApiMember(Description="The payment currency info") public var currencyInfo:CurrencyInfoResponse? /** * Comments that could be added to the event log item */ // @ApiMember(Description="Comments that could be added to the event log item") public var comments:String? /** * The date when the payment items was created */ // @ApiMember(Description="The date when the payment items was created") public var created:Date? /** * The date when the payment items were updated. */ // @ApiMember(Description="The date when the payment items were updated.") public var updated:Date? required public init(){} } public class BookingCheckoutQueryResponse : Codable { /** * The checkout id */ // @ApiMember(Description="The checkout id") public var id:String? /** * The booking id */ // @ApiMember(Description="The booking id") public var bookingId:Int? /** * The purchase id */ // @ApiMember(Description="The purchase id") public var purchaseId:Int? /** * The payment checkout expiration datetime */ // @ApiMember(Description="The payment checkout expiration datetime") public var expirationTime:Date? /** * The payment snippet code */ // @ApiMember(Description="The payment snippet code") public var snippet:String? /** * The payment status */ // @ApiMember(Description="The payment status") public var status:String? /** * Log message */ // @ApiMember(Description="Log message") public var message:String? /** * When the checkout log item was created */ // @ApiMember(Description="When the checkout log item was created") public var created:Date? /** * When the checkout log item was updated */ // @ApiMember(Description="When the checkout log item was updated") public var updated:Date? required public init(){} } public class ExternalReferenceResponse : Codable { public var companyId:String? public var id:String? public var ownerId:String? public var referenceType:String? public var externalData:String? public var createdBy:String? public var updated:Date? public var created:Date? required public init(){} } public class CurrencyInfoResponse : Codable { /** * The currency id */ // @ApiMember(Description="The currency id") public var id:String? /** * The currency id */ // @ApiMember(Description="The currency id") public var name:String? /** * The currency id */ // @ApiMember(Description="The currency id") public var currencySign:String? required public init(){} } public class CustomFieldValueResponse : Codable { public var value:String? required public init(){} } public class BookedResource : Codable { public var id:Int? public var name:String? public var color:String? public var imageUrl:Uri? public var email:String? public var mobilePhone:String? public var accessGroup:String? public var emailNotification:Bool? public var smsNotification:Bool? public var emailReminder:Bool? public var smsReminder:Bool? required public init(){} } public class BookingLogQueryResponse : Codable { /** * The booking log id */ // @ApiMember(Description="The booking log id") public var id:Int? /** * The booking id */ // @ApiMember(Description="The booking id") public var bookingId:Int? /** * The type of event */ // @ApiMember(Description="The type of event") public var eventTypeId:Int? /** * The type of event */ // @ApiMember(Description="The type of event") public var eventType:BookingLogEventTypeResponse? /** * Comments that could be added to the event log item */ // @ApiMember(Description="Comments that could be added to the event log item") public var comments:String? /** * The user created the event */ // @ApiMember(Description="The user created the event") public var userName:String? /** * The date when the event occurred */ // @ApiMember(Description="The date when the event occurred") public var created:Date? required public init(){} } public class BookedQuantity : Codable { /** * The quantity Id */ // @ApiMember(Description="The quantity Id") public var id:Int? /** * The quantity for booked on this price category */ // @ApiMember(Description="The quantity for booked on this price category") public var quantity:Int? /** * The price */ // @ApiMember(Description="The price") public var price:Double? /** * The price bofore rebate codes */ // @ApiMember(Description="The price bofore rebate codes") public var priceBeforeRebate:Double? /** * The price currency */ // @ApiMember(Description="The price currency") public var currencyId:String? /** * The price sign */ // @ApiMember(Description="The price sign") public var priceSign:String? /** * The price category */ // @ApiMember(Description="The price category") public var category:String? /** * The price VAT in percent */ // @ApiMember(Description="The price VAT in percent") public var vat:Double? /** * The price text to display */ // @ApiMember(Description="The price text to display") public var priceText:String? /** * 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(){} }