Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
POST | /rebatecodes | Create RebateCode. | Create RebateCode. |
---|
import java.math.*
import java.util.*
import net.servicestack.client.*
@ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
@ValidateRequest(Validator="IsAuthenticated")
open class CreateRebateCode
{
/**
*
*/
@ApiMember(Description="")
var CompanyId:UUID? = null
/**
* The default value is 9999
*/
@ApiMember(Description="The default value is 9999")
var MaxNumberOfUses:Int? = null
/**
* The default value is 1
*/
@ApiMember(Description="The default value is 1")
var MaxNumberOfUsesPerCustomer:Int? = null
/**
*
*/
@ApiMember(Description="", IsRequired=true)
var ValidFrom:Date? = null
/**
*
*/
@ApiMember(Description="", IsRequired=true)
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.")
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.")
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)
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.")
var ArticleId:Int? = null
/**
*
*/
@ApiMember(Description="", IsRequired=true)
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")
var RebateCodeSign:String? = null
/**
* AutoGenerateRebateCodeSign=true - random generate code
*/
@ApiMember(Description="AutoGenerateRebateCodeSign=true - random generate code")
var AutoGenerateRebateCodeSign:Boolean? = null
/**
*
*/
@ApiMember(Description="")
var PersonalNote:String? = null
/**
*
*/
@ApiMember(Description="")
var DaysOfWeek:ArrayList<Int> = ArrayList<Int>()
/**
*
*/
@ApiMember(Description="")
var Services:ArrayList<Int> = ArrayList<Int>()
/**
*
*/
@ApiMember(Description="")
var Customers:ArrayList<UUID> = ArrayList<UUID>()
/**
* The price
*/
@ApiMember(Description="The price")
var PriceVat:BigDecimal? = null
/**
* The price currency
*/
@ApiMember(Description="The price currency")
var CurrencyId:String? = null
/**
* Promo code Receiver infomration
*/
@ApiMember(Description="Promo code Receiver infomration")
var PromoCodeReceiver:PromoCodeReceiver? = null
}
open class PromoCodeReceiver
{
var CustomerId:UUID? = null
var Firstname:String? = null
var Lastname:String? = null
var Email:String? = null
var ReceiverMessage:String? = null
}
open class RebateCodeResponse
{
var Id:Int? = null
var CompanyId:UUID? = null
var ValidFrom:Date? = null
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.")
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.")
var ToTime:TimeSpan? = null
var CreatedBy:String? = null
var Created:Date? = null
var UpdatedBy:String? = null
var Updated:Date? = null
var PersonalNote:String? = null
var RebateCodeSign:String? = null
var RebateCodeValue:Int? = null
var RebateCodeTypeId:Int? = null
var Name:String? = null
var RebateCodeStatusId:Int? = null
var StatusName:String? = null
var MaxNumberOfUses:Int? = null
var MaxNumberOfUsesPerCustomer:Int? = null
var NumberOfUsesUsed:Int? = null
var DaysOfWeek:ArrayList<DaysOfWeekResponse> = ArrayList<DaysOfWeekResponse>()
var Services:ArrayList<RebateCodeServiceResponse> = ArrayList<RebateCodeServiceResponse>()
var Article:ArticleResponse? = null
var Transactions:ArrayList<RebateCodeTransactionQueryResponse> = ArrayList<RebateCodeTransactionQueryResponse>()
var RemainingAmount:Double? = null
var RemainingUsage:Int? = null
var Customers:ArrayList<RebateCodeCustomerResponse> = ArrayList<RebateCodeCustomerResponse>()
var ResponseStatus:ResponseStatus? = null
var PaymentReceived:Boolean? = null
var RebateCodeCurrencySign:String? = null
var ActiveByStatus:Boolean? = null
var PriceSign:String? = null
var RebateCodeTypeName:String? = null
}
open class DaysOfWeekResponse
{
var Id:Int? = null
var DayOfWeek:String? = null
var DayOfWeekTranslation:String? = null
var DayOfWeekActive:Boolean? = null
var DayOfWeekSortOrder:Short? = null
}
open class RebateCodeServiceResponse
{
var Id:Int? = null
var Name:String? = null
var Description:String? = null
var Active:Boolean? = null
}
open class ArticleResponse
{
var CompanyId:UUID? = null
var Id:Int? = null
var Name:String? = null
var ArticleTypeId:Int? = null
var Description:String? = null
var ImageUrl:String? = null
var Active:Boolean? = null
var Amount:Int? = null
var Price:Double? = null
var CurrencyId:String? = null
var UpdatedDate:Date? = null
var CreatedDate:Date? = null
var Services:ArrayList<ArticleServiceRelation> = ArrayList<ArticleServiceRelation>()
var ServiceIds:ArrayList<Int> = ArrayList<Int>()
var PriceSign:String? = null
}
open class ArticleServiceRelation : BaseModel()
{
@Required()
var CompanyId:UUID? = null
var Id:Int? = null
@Required()
var ServiceId:Int? = null
@Required()
var ArticleId:Int? = null
}
open class BaseModel
{
}
open class RebateCodeTransactionQueryResponse
{
var Id:Int? = null
var CompanyId:UUID? = null
var Note:String? = null
var RebateCodeId:Int? = null
var RebateCodeSign:String? = null
var RebateCodeTypeId:Int? = null
var RebateCodeTypeName:String? = null
var Amount:Double? = null
var BookingId:Int? = null
var UpdatedDate:Date? = null
var CreatedDate:Date? = null
var Service:RebateCodeServiceResponse? = null
var Customer:RebateCodeCustomerResponse? = null
var PriceSign:String? = null
}
open class RebateCodeCustomerResponse
{
var Id:UUID? = null
var Firstname:String? = null
var Lastname:String? = null
var Email:String? = null
var Phone:String? = null
var ImageUrl:String? = null
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /rebatecodes HTTP/1.1
Host: api.bokamera.se
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"CompanyId":"00000000-0000-0000-0000-000000000000","MaxNumberOfUses":0,"MaxNumberOfUsesPerCustomer":0,"FromTime":"00:00:00","ToTime":"00:00:00","RebateCodeTypeId":0,"ArticleId":0,"RebateCodeValue":0,"RebateCodeSign":"String","AutoGenerateRebateCodeSign":false,"PersonalNote":"String","DaysOfWeek":[0],"Services":[0],"Customers":["00000000-0000-0000-0000-000000000000"],"PriceVat":0,"CurrencyId":"String","PromoCodeReceiver":{"CustomerId":"00000000-0000-0000-0000-000000000000","Firstname":"String","Lastname":"String","Email":"String","ReceiverMessage":"String"}}
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"Id":0,"CompanyId":"00000000-0000-0000-0000-000000000000","FromTime":"00:00:00","ToTime":"00:00:00","CreatedBy":"String","UpdatedBy":"String","PersonalNote":"String","RebateCodeSign":"String","RebateCodeValue":0,"RebateCodeTypeId":0,"Name":"String","RebateCodeStatusId":0,"StatusName":"String","MaxNumberOfUses":0,"MaxNumberOfUsesPerCustomer":0,"NumberOfUsesUsed":0,"DaysOfWeek":[{"Id":0,"DayOfWeek":"String","DayOfWeekTranslation":"String","DayOfWeekActive":false,"DayOfWeekSortOrder":0}],"Services":[{"Id":0,"Name":"String","Description":"String","Active":false}],"Article":{"Id":0,"Name":"String","ArticleTypeId":0,"Description":"String","ImageUrl":"String","Active":false,"Amount":0,"Price":0,"CurrencyId":"String","Services":[{"Id":0,"ServiceId":0,"ArticleId":0}],"ServiceIds":[0],"PriceSign":"String"},"Transactions":[{"Id":0,"Note":"String","RebateCodeId":0,"RebateCodeSign":"String","RebateCodeTypeId":0,"RebateCodeTypeName":"String","Amount":0,"BookingId":0,"Service":{"Id":0,"Name":"String","Description":"String","Active":false},"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","ImageUrl":"String"},"PriceSign":"String"}],"RemainingAmount":0,"RemainingUsage":0,"Customers":[{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String","ImageUrl":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"PaymentReceived":false,"RebateCodeCurrencySign":"String","ActiveByStatus":false,"PriceSign":"String","RebateCodeTypeName":"String"}