/* Options: Date: 2024-11-21 16:57:04 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: CreateRecurringSchedule.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/schedules/recurring", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") public class CreateRecurringSchedule : IReturn, ICompany, Codable { public typealias Return = RecurringScheduleQueryResponse /** * 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? /** * The schedule name */ // @ApiMember(Description="The schedule name") public var name:String /** * The schedule description */ // @ApiMember(Description="The schedule description") public var Description:String /** * If schedule is active or not */ // @ApiMember(Description="If schedule is active or not") public var active:Bool /** * Time interval for available times. Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM */ // @ApiMember(Description="Time interval for available times. Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired=true) public var timeInterval:Int /** * Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight). */ // @ApiMember(Description="Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).", IsRequired=true) public var enableBookingUntilClosingTime:Bool /** * The timestamp to which the schedule is valid from */ // @ApiMember(Description="The timestamp to which the schedule is valid from", IsRequired=true) public var validFrom:Date /** * The timestamp to which the schedule is valid to */ // @ApiMember(Description="The timestamp to which the schedule is valid to", IsRequired=true) public var validTo:Date /** * The time for the schedule opening hours (starttime) */ // @ApiMember(Description="The time for the schedule opening hours (starttime)", IsRequired=true) @TimeSpan public var startTime:TimeInterval /** * The time for the schedule opening hours (endtime) */ // @ApiMember(Description="The time for the schedule opening hours (endtime)", IsRequired=true) @TimeSpan public var endTime:TimeInterval /** * The number of days the schedule is valid from todays date */ // @ApiMember(Description="The number of days the schedule is valid from todays date", IsRequired=true) public var numberOfScheduleDays:Int /** * If recurring, an array indicating which days of the week the schedule recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs */ // @ApiMember(Description="If recurring, an array indicating which days of the week the schedule recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs") public var daysOfWeek:[Int] = [] /** * If not recuring, an array indicating which dates that are open for the schedule. */ // @ApiMember(Description="If not recuring, an array indicating which dates that are open for the schedule.") public var scheduleDates:[AddRecurringScheduleDate] = [] /** * Schedule exceptions. For example closed on lunch time between 12AM and 1PM. These times will be removed from the recurring schedule. */ // @ApiMember(Description="Schedule exceptions. For example closed on lunch time between 12AM and 1PM. These times will be removed from the recurring schedule.") public var exceptions:[ScheduleException] = [] /** * If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources. */ // @ApiMember(Description="If the schedule is only connected to some resources, add them here. If empty, it will be used by all resources.") public var resources:[AddScheduleResource] = [] /** * Set what services the schedule should be connected to. */ // @ApiMember(Description="Set what services the schedule should be connected to.") public var services:[AddScheduleService] = [] required public init(){} } public class RecurringScheduleQueryResponse : Codable { /** * The schedule id */ // @ApiMember(Description="The schedule id") public var id:Int /** * Name of the schedule */ // @ApiMember(Description="Name of the schedule") public var name:String /** * Description of the schedule */ // @ApiMember(Description="Description of the schedule") public var Description:String /** * If the schedule is active or not */ // @ApiMember(Description="If the schedule is active or not") public var active:Bool /** * Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM */ // @ApiMember(Description="Time interval for available times Here you set the interval at which times should appear. For example, if you select the range 15minutes, and your service has an duration of 1 hour and opening hours are 9AM to 6PM you will see the following suggested times: 09AM-10PM 09:15AM-10:15PM, 09:30AM-10:30PM , ..... 04:45PM-05:45, 05:00PM-06:00PM", IsRequired=true) public var timeInterval:Int /** * The timestamp to which the schedule is valid from */ // @ApiMember(Description="The timestamp to which the schedule is valid from", IsRequired=true) public var validFrom:Date /** * The timestamp to which the schedule is valid to */ // @ApiMember(Description="The timestamp to which the schedule is valid to", IsRequired=true) public var validTo:Date /** * The time for the schedule opening hours (starttime) */ // @ApiMember(Description="The time for the schedule opening hours (starttime)", IsRequired=true) @TimeSpan public var startTime:TimeInterval /** * The time for the schedule opening hours (endtime) */ // @ApiMember(Description="The time for the schedule opening hours (endtime)", IsRequired=true) @TimeSpan public var endTime:TimeInterval /** * The number of days the schedule is valid from todays date */ // @ApiMember(Description="The number of days the schedule is valid from todays date", IsRequired=true) public var numberOfScheduleDays:Int /** * If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this. */ // @ApiMember(Description="If the schedule is only connected to some specific resources. Note: You must have IncludeResources property to see this.", IsRequired=true) public var isResourceSpecific:Bool? /** * The timestamp when the schedule was updated */ // @ApiMember(Description="The timestamp when the schedule was updated", IsRequired=true) public var updatedDate:Date /** * The timestamp when the schedule was created */ // @ApiMember(Description="The timestamp when the schedule was created", IsRequired=true) public var createdDate:Date /** * Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight). */ // @ApiMember(Description="Allow bookings end time exceeds the opening hours Here you can choose whether it should be possible to make a reservation exceeding the opening hours. This should be ticked when a service duration is longer than 24 hours (possible to book over midnight).", IsRequired=true) public var enableBookingUntilClosingTime:Bool /** * If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs */ // @ApiMember(Description="If recurring, an array indicating which days of the week the exception recures on where 1 = Monday .. 7 = Sunday. When recurring then the time portion of the Fields From and To indicates the time of day the recurrence occurs") public var daysOfWeek:[DayOfWeekDto] = [] /** * The resources that is connected to the schedule */ // @ApiMember(Description="The resources that is connected to the schedule") public var resources:[ScheduleResources] = [] /** * The services that is connected to the schedule */ // @ApiMember(Description="The services that is connected to the schedule") public var services:[ScheduleServices] = [] /** * The exceptions that is added to the schedule */ // @ApiMember(Description="The exceptions that is added to the schedule") public var exceptions:[RecurringScheduleExceptionResponse] = [] /** * Schedule dates, used when the schedule is not a rolling schedule using days of week */ // @ApiMember(Description="Schedule dates, used when the schedule is not a rolling schedule using days of week") public var scheduleDates:[RecurringScheduleDateResponse] = [] public var responseStatus:ResponseStatus required public init(){} } public protocol ICompany { var companyId:String? { get set } } public class AddRecurringScheduleDate : Codable { /** * The date for the schedule opening (only date part is used here */ // @ApiMember(Description="The date for the schedule opening (only date part is used here", IsRequired=true) public var date:Date /** * The time for the schedule opening hours (starttime) */ // @ApiMember(Description="The time for the schedule opening hours (starttime)", IsRequired=true) @TimeSpan public var startTime:TimeInterval /** * The time for the schedule opening hours (endtime) */ // @ApiMember(Description="The time for the schedule opening hours (endtime)", IsRequired=true) @TimeSpan public var endTime:TimeInterval required public init(){} } public class ScheduleException : Codable { @TimeSpan public var startTime:TimeInterval @TimeSpan public var endTime:TimeInterval required public init(){} } public class AddScheduleService : Codable { /** * The service id */ // @ApiMember(Description="The service id", IsRequired=true) public var id:Int required public init(){} } public class AddScheduleResource : Codable { /** * The resource id */ // @ApiMember(Description="The resource id", IsRequired=true) public var id:Int required public init(){} } public class DayOfWeekDto : Codable { public var dayOfWeekId:Int public var dotNetDayOfWeekId:Int public var dayOfWeek:String required public init(){} } public class ScheduleResources : Codable { public var id:Int /** * Name of the resource */ // @ApiMember(Description="Name of the resource") public var name:String /** * The image url of the resource */ // @ApiMember(Description="The image url of the resource") public var imageUrl:Uri required public init(){} } public class ScheduleServices : Codable { public var id:Int /** * Name of the service */ // @ApiMember(Description="Name of the service") public var name:String /** * The image url of the service */ // @ApiMember(Description="The image url of the service") public var imageUrl:Uri required public init(){} } public class RecurringScheduleExceptionResponse : Codable { /** * Start time of the schedule exception. */ // @ApiMember(Description="Start time of the schedule exception.") @TimeSpan public var startTime:TimeInterval /** * End time of the schedule exception. */ // @ApiMember(Description="End time of the schedule exception.") @TimeSpan public var endTime:TimeInterval required public init(){} } public class RecurringScheduleDateResponse : Codable { public var id:Int public var date:Date @TimeSpan public var startTime:TimeInterval @TimeSpan public var endTime:TimeInterval public var responseStatus:ResponseStatus required public init(){} }