/* Options: Date: 2024-11-24 13:35:17 SwiftVersion: 5.0 Version: 6.50 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://clubready.com/api/current //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateClassScheduleRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/scheduling/class-schedule", "POST") public class CreateClassScheduleRequest : CreateClassScheduleRequestDto, IReturn, IRestrictedApiRequest { public typealias Return = CreateClassScheduleResponse /** * Api Key - grants access to resources */ // @ApiMember(DataType="string", Description="Api Key - grants access to resources", IsRequired=true, Name="ApiKey", ParameterType="query") public var apiKey:String /** * Store ID */ // @ApiMember(DataType="integer", Description="Store ID", IsRequired=true, Name="StoreId", ParameterType="query") public var storeId:Int? /** * Class ID */ // @ApiMember(DataType="integer", Description="Class ID", IsRequired=true, Name="ClassId", ParameterType="query") public var classId:Int /** * Date and Time for Class */ // @ApiMember(DataType="date-time", Description="Date and Time for Class", IsRequired=true, Name="ClassDateTime", ParameterType="query") public var classDateTime:Date /** * Trainer ID */ // @ApiMember(DataType="integer", Description="Trainer ID", Name="TrainerId", ParameterType="query") public var trainerId:Int? /** * Alternate Class Name */ // @ApiMember(DataType="string", Description="Alternate Class Name", Name="AlternateClassName", ParameterType="query") public var alternateClassName:String public var restrictedId:Int? public var restrictedResourceType:RestrictedResourceType required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case apiKey case storeId case classId case classDateTime case trainerId case alternateClassName case restrictedId case restrictedResourceType } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) apiKey = try container.decodeIfPresent(String.self, forKey: .apiKey) storeId = try container.decodeIfPresent(Int.self, forKey: .storeId) classId = try container.decodeIfPresent(Int.self, forKey: .classId) classDateTime = try container.decodeIfPresent(Date.self, forKey: .classDateTime) trainerId = try container.decodeIfPresent(Int.self, forKey: .trainerId) alternateClassName = try container.decodeIfPresent(String.self, forKey: .alternateClassName) restrictedId = try container.decodeIfPresent(Int.self, forKey: .restrictedId) restrictedResourceType = try container.decodeIfPresent(RestrictedResourceType.self, forKey: .restrictedResourceType) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if apiKey != nil { try container.encode(apiKey, forKey: .apiKey) } if storeId != nil { try container.encode(storeId, forKey: .storeId) } if classId != nil { try container.encode(classId, forKey: .classId) } if classDateTime != nil { try container.encode(classDateTime, forKey: .classDateTime) } if trainerId != nil { try container.encode(trainerId, forKey: .trainerId) } if alternateClassName != nil { try container.encode(alternateClassName, forKey: .alternateClassName) } if restrictedId != nil { try container.encode(restrictedId, forKey: .restrictedId) } if restrictedResourceType != nil { try container.encode(restrictedResourceType, forKey: .restrictedResourceType) } } } public class CreateClassScheduleResponse : CreateClassScheduleResponseDto { public var success:Bool public var classScheduleId:Int? public var message:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case success case classScheduleId case message } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) success = try container.decodeIfPresent(Bool.self, forKey: .success) classScheduleId = try container.decodeIfPresent(Int.self, forKey: .classScheduleId) message = try container.decodeIfPresent(String.self, forKey: .message) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if success != nil { try container.encode(success, forKey: .success) } if classScheduleId != nil { try container.encode(classScheduleId, forKey: .classScheduleId) } if message != nil { try container.encode(message, forKey: .message) } } } public enum RestrictedResourceType : String, Codable { case Store case Chain case User case Undefined } public protocol IRestrictedApiRequest : IApiKeyEndpoint { var restrictedId:Int? { get set } var restrictedResourceType:RestrictedResourceType { get set } } public protocol IApiKeyEndpoint { var apiKey:String { get set } } public class CreateClassScheduleRequestDto : ApiDtoBase { public var classId:Int public var classDateTime:Date public var trainerId:Int? public var alternateClassName:String required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case classId case classDateTime case trainerId case alternateClassName } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) classId = try container.decodeIfPresent(Int.self, forKey: .classId) classDateTime = try container.decodeIfPresent(Date.self, forKey: .classDateTime) trainerId = try container.decodeIfPresent(Int.self, forKey: .trainerId) alternateClassName = try container.decodeIfPresent(String.self, forKey: .alternateClassName) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if classId != nil { try container.encode(classId, forKey: .classId) } if classDateTime != nil { try container.encode(classDateTime, forKey: .classDateTime) } if trainerId != nil { try container.encode(trainerId, forKey: .trainerId) } if alternateClassName != nil { try container.encode(alternateClassName, forKey: .alternateClassName) } } } public class ApiDtoBase : Codable { public var apiKey:String public var storeId:Int? public var chainId:Int? required public init(){} } public class CreateClassScheduleResponseDto : ApiResponseBase { public var classScheduleId:Int? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case classScheduleId } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) classScheduleId = try container.decodeIfPresent(Int.self, forKey: .classScheduleId) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if classScheduleId != nil { try container.encode(classScheduleId, forKey: .classScheduleId) } } } public class ApiResponseBase : Codable { public var success:Bool public var message:String required public init(){} }