/* Options: Date: 2025-09-14 13:58:52 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: NextFreeTimeQuery.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/services/{ServiceId}/nextfreetime", "GET") public class NextFreeTimeQuery : IReturn, IInterval, Codable { public typealias Return = AvailableTimesResponse /** * Company to show available time for */ // @ApiMember(Description="Company to show available time for", ParameterType="query") public var companyId:String? /** * Service id */ // @ApiMember(Description="Service id", IsRequired=true, ParameterType="path") public var serviceId:Int? /** * From what datetime to search available times */ // @ApiMember(DataType="dateTime", Description="From what datetime to search available times", IsRequired=true, ParameterType="query") public var from:Date? /** * To what datetime to show available times. Optional, if no datetime is set it will search one year */ // @ApiMember(DataType="dateTime", Description="To what datetime to show available times. Optional, if no datetime is set it will search one year", IsRequired=true, ParameterType="query") public var to:Date? /** * Here you can select one of the resource in each resource type connected to the service, if none is selected it will show available times for all */ // @ApiMember(Description="Here you can select one of the resource in each resource type connected to the service, if none is selected it will show available times for all", ParameterType="query") public var resources:[AvailableTimesResourceTypeResource]? /** * Here you select number of resources to book (in each resource type). Default is 1. */ // @ApiMember(Description="Here you select number of resources to book (in each resource type). Default is 1.", ParameterType="query") public var numberOfResources:Int? /** * The duration you want to book. Needs to withing the service Min and Max. If not set it will use the service duration */ // @ApiMember(DataType="bool", Description="The duration you want to book. Needs to withing the service Min and Max. If not set it will use the service duration", ParameterType="query") public var duration:Int? /** * If you want to include the connected resource types and resources */ // @ApiMember(Description="If you want to include the connected resource types and resources", ParameterType="query") public var showPerResource:Bool? required public init(){} } public class AvailableTimesResponse : Codable { public var companyId:String? public var serviceId:Int? public var timesFreeTextSingle:String? public var timesFreeTextMultiple:String? public var times:[AvailableTimesSum]? required public init(){} } public protocol IInterval { var from:Date? { get set } var to:Date? { get set } } public class AvailableTimesResourceTypeResource : Codable { /** * The resourcetype id */ // @ApiMember(Description="The resourcetype id") public var resourceTypeId:Int? /** * The resource id */ // @ApiMember(Description="The resource id") public var resourceId:Int? required public init(){} } public class AvailableTimesSum : IAvailableTime, Codable { public var from:Date? public var to:Date? public var free:Int? public var freeSpots:Int? public var exceptionTexts:[ExceptionText]? required public init(){} } public class ExceptionText : Codable { public var reason:String? public var reasonPublic:String? required public init(){} } public protocol IAvailableTime : IInterval { var free:Int? { get set } }