/* Options: Date: 2024-07-03 12:46:35 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: UpdateServicePrice.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/services/prices/{Id}", "PUT") // @ValidateRequest(Validator="IsAuthenticated") public class UpdateServicePrice : IReturn, ICompany, Codable { public typealias Return = ServicePriceResponse /** * 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? /** * Id of the price */ // @ApiMember(Description="Id of the price", IsRequired=true, ParameterType="path") public var id:Int /** * The price */ // @ApiMember(Description="The price") public var price:Double /** * The price currency */ // @ApiMember(Description="The price currency") public var currencyId:String /** * The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day */ // @ApiMember(Description="The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day") public var calculationTypeId:Int /** * The price VAT in percent */ // @ApiMember(Description="The price VAT in percent") public var vat:Double /** * The price category if price has a category */ // @ApiMember(Description="The price category if price has a category") public var category:String /** * The valid from date for the price. */ // @ApiMember(Description="The valid from date for the price.") public var from:Date /** * The valid to date for the price. */ // @ApiMember(Description="The valid to date for the price.") public var to:Date /** * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */ // @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.") public var daysOfWeek:[Int] = [] /** * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */ // @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.") @TimeSpan public var fromTime:TimeInterval? /** * If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters. */ // @ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.") @TimeSpan public var toTime:TimeInterval? required public init(){} } public class ServicePriceResponse : Codable { /** * The company id */ // @ApiMember(Description="The company id") public var companyId:String /** * The price id */ // @ApiMember(Description="The price id") public var id:Int /** * The service id */ // @ApiMember(Description="The service id") public var serviceId:Int /** * The price */ // @ApiMember(Description="The price") public var price:Double /** * The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day */ // @ApiMember(Description="The price calculation type id, 1 = Normal, price is for the service total duration, 2 = Price is per minute, 3 = Price is per hour, 4= Price is per day") public var calculationTypeId:Int /** * The price currency */ // @ApiMember(Description="The price currency") public var currencyId:String /** * The price sign */ // @ApiMember(Description="The price sign") public var priceSign:String /** * The price VAT in percent */ // @ApiMember(Description="The price VAT in percent") public var vat:Double /** * The price category if price has a category */ // @ApiMember(Description="The price category if price has a category") public var category:String /** * The price text to display */ // @ApiMember(Description="The price text to display") public var priceText:String /** * The valid from date for the price. */ // @ApiMember(Description="The valid from date for the price.") public var from:Date /** * The valid to date for the price. */ // @ApiMember(Description="The valid to date for the price.") public var to:Date /** * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */ // @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.") public var daysOfWeek:[DayOfWeekDto] = [] /** * If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update. */ // @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.") @TimeSpan public var fromTime:TimeInterval? /** * If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters. */ // @ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.") @TimeSpan public var toTime:TimeInterval? public var service:ServiceInfoResponse /** * If the price is only valid for a specific time span */ // @ApiMember(Description="If the price is only valid for a specific time span") public var isTimeSpecific:Bool /** * If the price is only valid for specific days of week */ // @ApiMember(Description="If the price is only valid for specific days of week") public var isDaysOfWeekSpecific:Bool /** * If the price is Weighted */ // @ApiMember(Description="If the price is Weighted") public var isWeighted:Bool required public init(){} } public protocol ICompany { var companyId:String? { get set } } 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 groupBooking:GroupBookingSettings public var multipleResource:MultipleResourceSettings public var isGroupBooking:Bool public var isPaymentEnabled:Bool required public init(){} } public class DayOfWeekDto : Codable { public var dayOfWeekId:Int public var dotNetDayOfWeekId:Int public var dayOfWeek:String required public init(){} }