/* Options: Date: 2025-08-21 00:50:39 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CreateArticleRebateCode.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/rebatecodes/fromarticle", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) public class CreateArticleRebateCode : IReturn, ICompany, Codable { public typealias Return = RebateCodeResponse /** * */ // @ApiMember(Description="") public var companyId:String? /** * Article ID for the rebate code */ // @ApiMember(Description="Article ID for the rebate code", IsRequired=true) public var articleId:Int /** * Customer information */ // @ApiMember(Description="Customer information") public var customer:CustomerToHandle /** * If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. */ // @ApiMember(Description="If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. ") public var invoiceAddress:InvoiceAddressToHandle /** * Promo code Receiver information */ // @ApiMember(Description="Promo code Receiver information") public var receiver:PromoCodeReceiver required public init(){} } public class RebateCodeResponse : Codable { public var id:Int public var companyId:String? public var validFrom:Date public var validTo: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.") @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 createdBy:String public var created:Date public var updatedBy:String public var updated:Date public var personalNote:String public var rebateCodeSign:String public var rebateCodeValue:Int public var rebateCodeTypeId:Int public var name:String public var rebateCodeStatusId:Int public var statusName:String public var maxNumberOfUses:Int public var maxNumberOfUsesPerCustomer:Int public var numberOfUsesUsed:Int public var daysOfWeek:[DaysOfWeekResponse] = [] public var services:[RebateCodeServiceResponse] = [] public var article:ArticleResponse public var transactions:[RebateCodeTransactionQueryResponse] = [] public var remainingAmount:Double? public var remainingUsage:Int? public var customers:[RebateCodeCustomerResponse] = [] public var responseStatus:ResponseStatus public var paymentReceived:Bool public var rebateCodeCurrencySign:String public var activeByStatus:Bool public var priceSign:String public var rebateCodeTypeName:String public var company:RebateCodeCompanyResponse required public init(){} } public protocol ICompany { var companyId:String? { get set } } public class CustomerToHandle : Codable { public var customerId:String? public var firstname:String public var lastname:String public var email:String public var phone:String public var subscribedToNewsletter:Bool required public init(){} } public class InvoiceAddressToHandle : Codable { public var corporateIdentityNumber:String public var invoiceAddress1:String public var invoiceAddress2:String public var invoiceCity:String public var invoicePostalCode:String public var invoiceCountryCode:String required public init(){} } public class PromoCodeReceiver : Codable { public var customerId:String? public var firstname:String public var lastname:String public var email:String public var receiverMessage:String required public init(){} } public class RebateCodeTransactionQueryResponse : Codable { public var id:Int public var companyId:String public var note:String public var rebateCodeId:Int public var rebateCodeSign:String public var rebateCodeTypeId:Int? public var rebateCodeTypeName:String public var amount:Double public var usage:String public var bookingId:Int? public var updatedDate:Date public var createdDate:Date public var service:RebateCodeServiceResponse public var customer:RebateCodeCustomerResponse public var priceSign:String required public init(){} } public class DaysOfWeekResponse : Codable { public var id:Int public var dayOfWeek:String public var dayOfWeekTranslation:String public var dayOfWeekActive:Bool? public var dayOfWeekSortOrder:Int16? required public init(){} } public class RebateCodeServiceResponse : Codable { public var id:Int public var name:String public var Description:String public var active:Bool required public init(){} } public class RebateCodeCustomerResponse : Codable { public var id:String public var firstname:String public var lastname:String public var email:String public var phone:String public var imageUrl:String required public init(){} } public class RebateCodeCompanyResponse : Codable { public var sitePath:String public var paymentProviderId:Int? required public init(){} } public class ArticleResponse : Codable { public var companyId:String public var id:Int public var name:String public var articleTypeId:Int public var Description:String public var imageUrl:String public var active:Bool public var amount:Int public var price:Double public var currencyId:String public var updatedDate:Date public var createdDate:Date public var services:[ArticleServiceRelation] = [] public var serviceIds:[Int] = [] public var priceSign:String public var vat:Double? required public init(){} }