/* Options: Date: 2026-04-22 01:33:26 Version: 10.05 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateRebateCode.* //ExcludeTypes: //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.* */ import java.math.* import java.util.* import java.io.InputStream import net.servicestack.client.* @Route(Path="/rebatecodes", Verbs="POST") @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) @ValidateRequest(Validator="IsAuthenticated") open class CreateRebateCode : IReturn { /** * */ @ApiMember(Description="") open var CompanyId:UUID? = null /** * The default value is 9999 */ @ApiMember(Description="The default value is 9999") open var MaxNumberOfUses:Int? = null /** * The default value is 1 */ @ApiMember(Description="The default value is 1") open var MaxNumberOfUsesPerCustomer:Int? = null /** * */ @ApiMember(Description="", IsRequired=true) open var ValidFrom:Date? = null /** * */ @ApiMember(Description="", IsRequired=true) open var ValidTo:Date? = null /** * 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.") open var FromTime:TimeSpan? = null /** * 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.") open var ToTime:TimeSpan? = null /** * 1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard */ @ApiMember(Description="1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard", IsRequired=true) open var RebateCodeTypeId:Int? = null /** * 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.") open var ArticleId:Int? = null /** * */ @ApiMember(Description="", IsRequired=true) open var RebateCodeValue:Int? = null /** * If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes */ @ApiMember(Description="If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes") open var RebateCodeSign:String? = null /** * AutoGenerateRebateCodeSign=true - random generate code */ @ApiMember(Description="AutoGenerateRebateCodeSign=true - random generate code") open var AutoGenerateRebateCodeSign:Boolean? = null /** * */ @ApiMember(Description="") open var PersonalNote:String? = null /** * */ @ApiMember(Description="") open var DaysOfWeek:ArrayList = ArrayList() /** * */ @ApiMember(Description="") open var Services:ArrayList = ArrayList() /** * */ @ApiMember(Description="") open var Customers:ArrayList = ArrayList() /** * The price */ @ApiMember(Description="The price") open var PriceVat:BigDecimal? = null /** * The price VAT in percent */ @ApiMember(Description="The price VAT in percent") open var VAT:BigDecimal? = null /** * The price currency */ @ApiMember(Description="The price currency") open var CurrencyId:String? = null /** * Promo code receiver information */ @ApiMember(Description="Promo code receiver information") open var PromoCodeReceiver:PromoCodeReceiver? = null /** * 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.") open var InvoiceAddress:InvoiceAddressToHandle? = null /** * Determines if the rebate code is active on creation or if it should await payment. If you set this to true, make sure to mark the code as payed when you receive the payment, by using the MarkRebateCodeAsPayed endpoint. The default value is false. */ @ApiMember(Description="Determines if the rebate code is active on creation or if it should await payment. If you set this to true, make sure to mark the code as payed when you receive the payment, by using the MarkRebateCodeAsPayed endpoint. The default value is false.") open var Paid:Boolean? = null companion object { private val responseType = RebateCodeResponse::class.java } override fun getResponseType(): Any? = CreateRebateCode.responseType } open class RebateCodeResponse { open var Id:Int? = null open var CompanyId:UUID? = null open var ValidFrom:Date? = null open var ValidTo:Date? = null /** * 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.") open var FromTime:TimeSpan? = null /** * 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.") open var ToTime:TimeSpan? = null open var CreatedBy:String? = null open var Created:Date? = null open var UpdatedBy:String? = null open var Updated:Date? = null open var PersonalNote:String? = null open var RebateCodeSign:String? = null open var RebateCodeValue:Int? = null open var RebateCodeTypeId:Int? = null open var Name:String? = null open var RebateCodeStatusId:Int? = null open var StatusName:String? = null open var MaxNumberOfUses:Int? = null open var MaxNumberOfUsesPerCustomer:Int? = null open var NumberOfUsesUsed:Int? = null open var DaysOfWeek:ArrayList = ArrayList() open var Services:ArrayList = ArrayList() open var Article:ArticleResponse? = null open var Transactions:ArrayList = ArrayList() open var RemainingAmount:Double? = null open var RemainingUsage:Int? = null open var Customers:ArrayList = ArrayList() open var ResponseStatus:ResponseStatus? = null open var PaymentReceived:Boolean? = null open var RebateCodeCurrencySign:String? = null open var ActiveByStatus:Boolean? = null open var PriceSign:String? = null open var RebateCodeTypeName:String? = null open var Company:RebateCodeCompanyResponse? = null open var PaymentLog:ArrayList = ArrayList() } open class InvoiceAddressToHandle : IInvoiceAddress { override var CorporateIdentityNumber:String? = null override var InvoiceAddress1:String? = null override var InvoiceAddress2:String? = null override var InvoiceCity:String? = null override var InvoicePostalCode:String? = null override var InvoiceCountryCode:String? = null } open class PromoCodeReceiver { open var CustomerId:UUID? = null open var Firstname:String? = null open var Lastname:String? = null open var Email:String? = null open var ReceiverMessage:String? = null } open class RebateCodeTransactionQueryResponse { open var Id:Int? = null open var CompanyId:UUID? = null open var Note:String? = null open var RebateCodeId:Int? = null open var RebateCodeSign:String? = null open var RebateCodeTypeId:Int? = null open var RebateCodeTypeName:String? = null open var Amount:Double? = null open var Usage:String? = null open var BookingId:Int? = null open var UpdatedDate:Date? = null open var CreatedDate:Date? = null open var Service:RebateCodeServiceResponse? = null open var Customer:RebateCodeCustomerResponse? = null open var PriceSign:String? = null } open class PaymentLogResponse { open var Id:Int? = null open var Amount:Double? = null open var AmountCredited:Double? = null open var CurrencyId:String? = null open var Comments:String? = null open var Created:Date? = null open var Updated:Date? = null } open class DaysOfWeekResponse { open var Id:Int? = null open var DayOfWeek:String? = null open var DayOfWeekTranslation:String? = null open var DayOfWeekActive:Boolean? = null open var DayOfWeekSortOrder:Short? = null } open class RebateCodeServiceResponse { open var Id:Int? = null open var Name:String? = null open var Description:String? = null open var Active:Boolean? = null } open class RebateCodeCustomerResponse { open var Id:UUID? = null open var Firstname:String? = null open var Lastname:String? = null open var Email:String? = null open var Phone:String? = null open var ImageUrl:String? = null } open class RebateCodeCompanyResponse { open var SitePath:String? = null open var PaymentProviderId:Int? = null } interface IInvoiceAddress { var CorporateIdentityNumber:String? var InvoiceAddress1:String? var InvoiceAddress2:String? var InvoiceCity:String? var InvoicePostalCode:String? var InvoiceCountryCode:String? } open class ArticleResponse { open var CompanyId:UUID? = null open var Id:Int? = null open var Name:String? = null open var ArticleTypeId:Int? = null open var Description:String? = null open var ImageUrl:String? = null open var Active:Boolean? = null open var Amount:Int? = null open var Price:Double? = null open var CurrencyId:String? = null open var SortOrder:Int? = null open var UpdatedDate:Date? = null open var CreatedDate:Date? = null open var Duration:Int? = null open var Services:ArrayList = ArrayList() open var ServiceIds:ArrayList = ArrayList() open var PriceSign:String? = null open var VAT:BigDecimal? = null open var ValidDays:Int? = null open var SendNotification:Boolean? = null open var NotificationEmail:String? = null }