/* Options: Date: 2024-11-21 13:00:09 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CollidingBookingQuery.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/timeexceptions/collidingevents", "GET") // @ApiResponse(Description="The request parameters was not valid", StatusCode=400) // @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 CollidingBookingQuery : IReturn, Codable { public typealias Return = CollidingBookingQueryResponse /** * 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? /** * Resource ids of the resource that should be matched against booked events */ // @ApiMember(Description="Resource ids of the resource that should be matched against booked events") public var resourceIds:[Int] = [] /** * Time exception starting date */ // @ApiMember(Description="Time exception starting date") public var from:Date /** * Time exception ending date */ // @ApiMember(Description="Time exception ending date") public var to:Date /** * This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day. */ // @ApiMember(Description="This value indicates the time of day when the time exception begins. Example: 10:00. If Recurring this will be the startime for each recurring day.") @TimeSpan public var fromTime:TimeInterval /** * This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day. */ // @ApiMember(Description="This value indicates the time of day when the time exception ends. Example: 12:00. If Recurring this will be the endtime for each recurring day.") @TimeSpan public var toTime:TimeInterval /** * A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday */ // @ApiMember(Description="A comma separated list of which days this day exception belongs to, 1 = Monday .. 7 = Sunday") public var daysOfWeek:[Int] = [] /** * If you want to include the service information for the booking */ // @ApiMember(DataType="boolean", Description="If you want to include the service information for the booking", ParameterType="query") public var includeServiceInformation:Bool /** * If you want to include the customer information for the booking */ // @ApiMember(DataType="boolean", Description="If you want to include the customer information for the booking", ParameterType="query") public var includeCustomerInformation:Bool required public init(){} } public class CollidingBookingQueryResponse : Codable { /** * Resource id of the resource that owns this exception */ // @ApiMember(Description="Resource id of the resource that owns this exception") public var resourceIds:[Int] = [] /** * A list of bookings that would collide with the time exception */ // @ApiMember(Description="A list of bookings that would collide with the time exception") public var bookings:[BookingIntervalResponse] = [] public var responseStatus:ResponseStatus 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 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 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 BookingIntervalResponse : 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 customer:BookedCustomer public var service:ServiceInfoResponse public var createdDate:Date required public init(){} }