Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
POST | /rebatecodes | Create RebateCode. | Create RebateCode. |
---|
"use strict";
export class DaysOfWeekResponse {
/** @param {{Id?:number,DayOfWeek?:string,DayOfWeekTranslation?:string,DayOfWeekActive?:boolean,DayOfWeekSortOrder?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {string} */
DayOfWeek;
/** @type {string} */
DayOfWeekTranslation;
/** @type {?boolean} */
DayOfWeekActive;
/** @type {?number} */
DayOfWeekSortOrder;
}
export class RebateCodeServiceResponse {
/** @param {{Id?:number,Name?:string,Description?:string,Active?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {string} */
Name;
/** @type {string} */
Description;
/** @type {boolean} */
Active;
}
export class BaseModel {
constructor(init) { Object.assign(this, init) }
}
export class ArticleServiceRelation extends BaseModel {
/** @param {{CompanyId?:string,Id?:number,ServiceId?:number,ArticleId?:number}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {string} */
CompanyId;
/** @type {number} */
Id;
/** @type {number} */
ServiceId;
/** @type {number} */
ArticleId;
}
export class ArticleResponse {
/** @param {{CompanyId?:string,Id?:number,Name?:string,ArticleTypeId?:number,Description?:string,ImageUrl?:string,Active?:boolean,Amount?:number,Price?:number,CurrencyId?:string,UpdatedDate?:string,CreatedDate?:string,Services?:ArticleServiceRelation[],ServiceIds?:number[],PriceSign?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
CompanyId;
/** @type {number} */
Id;
/** @type {string} */
Name;
/** @type {number} */
ArticleTypeId;
/** @type {string} */
Description;
/** @type {string} */
ImageUrl;
/** @type {boolean} */
Active;
/** @type {number} */
Amount;
/** @type {number} */
Price;
/** @type {string} */
CurrencyId;
/** @type {string} */
UpdatedDate;
/** @type {string} */
CreatedDate;
/** @type {ArticleServiceRelation[]} */
Services;
/** @type {number[]} */
ServiceIds;
/** @type {string} */
PriceSign;
}
export class RebateCodeCustomerResponse {
/** @param {{Id?:string,Firstname?:string,Lastname?:string,Email?:string,Phone?:string,ImageUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
Id;
/** @type {string} */
Firstname;
/** @type {string} */
Lastname;
/** @type {string} */
Email;
/** @type {string} */
Phone;
/** @type {string} */
ImageUrl;
}
export class RebateCodeTransactionQueryResponse {
/** @param {{Id?:number,CompanyId?:string,Note?:string,RebateCodeId?:number,RebateCodeSign?:string,RebateCodeTypeId?:number,RebateCodeTypeName?:string,Amount?:number,BookingId?:number,UpdatedDate?:string,CreatedDate?:string,Service?:RebateCodeServiceResponse,Customer?:RebateCodeCustomerResponse,PriceSign?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {string} */
CompanyId;
/** @type {string} */
Note;
/** @type {number} */
RebateCodeId;
/** @type {string} */
RebateCodeSign;
/** @type {?number} */
RebateCodeTypeId;
/** @type {string} */
RebateCodeTypeName;
/** @type {number} */
Amount;
/** @type {?number} */
BookingId;
/** @type {string} */
UpdatedDate;
/** @type {string} */
CreatedDate;
/** @type {RebateCodeServiceResponse} */
Service;
/** @type {RebateCodeCustomerResponse} */
Customer;
/** @type {string} */
PriceSign;
}
export class RebateCodeResponse {
/** @param {{Id?:number,CompanyId?:string,ValidFrom?:string,ValidTo?:string,FromTime?:string,ToTime?:string,CreatedBy?:string,Created?:string,UpdatedBy?:string,Updated?:string,PersonalNote?:string,RebateCodeSign?:string,RebateCodeValue?:number,RebateCodeTypeId?:number,Name?:string,RebateCodeStatusId?:number,StatusName?:string,MaxNumberOfUses?:number,MaxNumberOfUsesPerCustomer?:number,NumberOfUsesUsed?:number,DaysOfWeek?:DaysOfWeekResponse[],Services?:RebateCodeServiceResponse[],Article?:ArticleResponse,Transactions?:RebateCodeTransactionQueryResponse[],RemainingAmount?:number,RemainingUsage?:number,Customers?:RebateCodeCustomerResponse[],ResponseStatus?:ResponseStatus,PaymentReceived?:boolean,RebateCodeCurrencySign?:string,ActiveByStatus?:boolean,PriceSign?:string,RebateCodeTypeName?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
Id;
/** @type {?string} */
CompanyId;
/** @type {string} */
ValidFrom;
/** @type {string} */
ValidTo;
/**
* @type {string}
* @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. */
FromTime;
/**
* @type {string}
* @description If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters. */
ToTime;
/** @type {string} */
CreatedBy;
/** @type {string} */
Created;
/** @type {string} */
UpdatedBy;
/** @type {string} */
Updated;
/** @type {string} */
PersonalNote;
/** @type {string} */
RebateCodeSign;
/** @type {number} */
RebateCodeValue;
/** @type {number} */
RebateCodeTypeId;
/** @type {string} */
Name;
/** @type {number} */
RebateCodeStatusId;
/** @type {string} */
StatusName;
/** @type {number} */
MaxNumberOfUses;
/** @type {number} */
MaxNumberOfUsesPerCustomer;
/** @type {number} */
NumberOfUsesUsed;
/** @type {DaysOfWeekResponse[]} */
DaysOfWeek;
/** @type {RebateCodeServiceResponse[]} */
Services;
/** @type {ArticleResponse} */
Article;
/** @type {RebateCodeTransactionQueryResponse[]} */
Transactions;
/** @type {?number} */
RemainingAmount;
/** @type {?number} */
RemainingUsage;
/** @type {RebateCodeCustomerResponse[]} */
Customers;
/** @type {ResponseStatus} */
ResponseStatus;
/** @type {boolean} */
PaymentReceived;
/** @type {string} */
RebateCodeCurrencySign;
/** @type {boolean} */
ActiveByStatus;
/** @type {string} */
PriceSign;
/** @type {string} */
RebateCodeTypeName;
}
export class PromoCodeReceiver {
/** @param {{CustomerId?:string,Firstname?:string,Lastname?:string,Email?:string,ReceiverMessage?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {?string} */
CustomerId;
/** @type {string} */
Firstname;
/** @type {string} */
Lastname;
/** @type {string} */
Email;
/** @type {string} */
ReceiverMessage;
}
export class CreateRebateCode {
/** @param {{CompanyId?:string,MaxNumberOfUses?:number,MaxNumberOfUsesPerCustomer?:number,ValidFrom?:string,ValidTo?:string,FromTime?:string,ToTime?:string,RebateCodeTypeId?:number,ArticleId?:number,RebateCodeValue?:number,RebateCodeSign?:string,AutoGenerateRebateCodeSign?:boolean,PersonalNote?:string,DaysOfWeek?:number[],Services?:number[],Customers?:string[],PriceVat?:number,CurrencyId?:string,PromoCodeReceiver?:PromoCodeReceiver}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {?string} */
CompanyId;
/**
* @type {?number}
* @description The default value is 9999 */
MaxNumberOfUses;
/**
* @type {?number}
* @description The default value is 1 */
MaxNumberOfUsesPerCustomer;
/** @type {string} */
ValidFrom;
/** @type {string} */
ValidTo;
/**
* @type {?string}
* @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. */
FromTime;
/**
* @type {?string}
* @description If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters. */
ToTime;
/**
* @type {number}
* @description 1 - Percent, 2 - Сurrency, 3 - PunchTicket, 4 - ValueCard, 5 - GiftCard */
RebateCodeTypeId;
/**
* @type {?number}
* @description If it's connected to an Article, add the Article Id here. */
ArticleId;
/** @type {number} */
RebateCodeValue;
/**
* @type {string}
* @description If AutoGenerateRebateCodeSign=false - more than four letters, unique among active codes */
RebateCodeSign;
/**
* @type {boolean}
* @description AutoGenerateRebateCodeSign=true - random generate code */
AutoGenerateRebateCodeSign;
/** @type {string} */
PersonalNote;
/** @type {number[]} */
DaysOfWeek;
/** @type {number[]} */
Services;
/** @type {string[]} */
Customers;
/**
* @type {?number}
* @description The price */
PriceVat;
/**
* @type {string}
* @description The price currency */
CurrencyId;
/**
* @type {PromoCodeReceiver}
* @description Promo code Receiver infomration */
PromoCodeReceiver;
}
JavaScript CreateRebateCode DTOs
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"}