/* Options: Date: 2024-07-03 12:33:52 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: CreateDateSchedule.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/schedules/date", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") public class CreateDateSchedule : IReturn, ICompany, Codable { public typealias Return = DateScheduleQueryResponse /** * 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 /** * 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 /** * The dates for the schedule. This is the actual timeslots. */ // @ApiMember(Description="The dates for the schedule. This is the actual timeslots.") public var scheduleDates:[AddDateScheduleDate] = [] /** * 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 DateScheduleQueryResponse : 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 /** * 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? /** * Schedule dates */ // @ApiMember(Description="Schedule dates") public var scheduleDates:[DateScheduleDateResponse] = [] /** * 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 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 public var responseStatus:ResponseStatus required public init(){} } public protocol ICompany { var companyId:String? { get set } } public class AddScheduleService : Codable { /** * The service id */ // @ApiMember(Description="The service id", IsRequired=true) public var id:Int required public init(){} } public class AddDateScheduleDate : Codable { /** * The from date for the timeslot */ // @ApiMember(Description="The from date for the timeslot", IsRequired=true) public var from:Date /** * The to date for the timeslot */ // @ApiMember(Description="The to date for the timeslot", IsRequired=true) public var to:Date 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 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 DateScheduleDateResponse : Codable { public var id:Int public var from:Date public var to:Date public var responseStatus:ResponseStatus required public init(){} }