/* Options: Date: 2025-09-13 16:20:15 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: CreateRebateCode.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/rebatecodes", "POST") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) // @ValidateRequest(Validator="IsAuthenticated") public class CreateRebateCode : IReturn, Codable { public typealias Return = RebateCodeResponse /** * */ // @ApiMember(Description="") public var companyId:String? /** * The default value is 9999 */ // @ApiMember(Description="The default value is 9999") public var maxNumberOfUses:Int? /** * The default value is 1 */ // @ApiMember(Description="The default value is 1") public var maxNumberOfUsesPerCustomer:Int? /** * */ // @ApiMember(Description="", IsRequired=true) public var validFrom:Date? /** * */ // @ApiMember(Description="", IsRequired=true) 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? /** * 1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard */ // @ApiMember(Description="1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard", IsRequired=true) public var rebateCodeTypeId:Int? /** * If it's connected to an Article, add the Article Id here. */ // @ApiMember(Description="If it's connected to an Article, add the Article Id here.") public var articleId:Int? /** * */ // @ApiMember(Description="", IsRequired=true) public var rebateCodeValue:Int? /** * If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes */ // @ApiMember(Description="If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes") public var rebateCodeSign:String? /** * AutoGenerateRebateCodeSign=true - random generate code */ // @ApiMember(Description="AutoGenerateRebateCodeSign=true - random generate code") public var autoGenerateRebateCodeSign:Bool? /** * */ // @ApiMember(Description="") public var personalNote:String? /** * */ // @ApiMember(Description="") public var daysOfWeek:[Int]? /** * */ // @ApiMember(Description="") public var services:[Int]? /** * */ // @ApiMember(Description="") public var customers:[String]? /** * The price */ // @ApiMember(Description="The price") public var priceVat:Double? /** * The price currency */ // @ApiMember(Description="The price currency") public var currencyId:String? /** * Promo code receiver information */ // @ApiMember(Description="Promo code receiver information") public var promoCodeReceiver:PromoCodeReceiver? /** * If you wish to save some invoice address information for the rebate code, you can do so here. This is optional. */ // @ApiMember(Description="If you wish to save some invoice address information for the rebate code, you can do so here. This is optional.") public var invoiceAddress:InvoiceAddressToHandle? 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 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(){} }