Requires any of the roles: | bookingsupplier-administrator-write, bookingsupplier-administrator-read, superadmin |
GET | /companies/{CompanyId}/incentives | It gets either incentives which are not read or engaged by the current company/administrator. |
---|
export enum IncentiveActionType
{
Upgrade = 1,
AddOn = 2,
Information = 3,
}
export class LicenseItemsResponse
{
public Id: number;
public Name: string;
public AllowedItems: number;
public constructor(init?: Partial<LicenseItemsResponse>) { (Object as any).assign(this, init); }
}
export class BaseModel
{
public constructor(init?: Partial<BaseModel>) { (Object as any).assign(this, init); }
}
export class Currency extends BaseModel
{
// @Required()
public Name: string;
// @Required()
public CurrencySign: string;
// @Required()
public Active: boolean;
public ModifiedDate?: string;
// @Required()
public Id: string;
public constructor(init?: Partial<Currency>) { super(init); (Object as any).assign(this, init); }
}
export class Country extends BaseModel
{
// @References("typeof(BokaMera.API.ServiceModel.Db.Currency)")
public CurrencyId: string;
public CurrencyInfo: Currency;
// @Required()
public Name: string;
public Culture: string;
public TimeZone: string;
public ModifiedDate?: string;
// @Required()
public Id: string;
public constructor(init?: Partial<Country>) { super(init); (Object as any).assign(this, init); }
}
export class LicensePrice extends BaseModel
{
// @Ignore()
public Country: Country;
// @Ignore()
public MonthlyPayment: boolean;
// @Required()
public LicenseTypeId: number;
// @Required()
public CountryId: string;
// @Required()
public Price: number;
public ModifiedDate?: string;
public constructor(init?: Partial<LicensePrice>) { super(init); (Object as any).assign(this, init); }
}
export class LicenseTypeQueryResponse
{
/** @description The license type id */
// @ApiMember(Description="The license type id")
public Id: number;
/** @description The license type name */
// @ApiMember(Description="The license type name")
public Name: string;
/** @description The license type description */
// @ApiMember(Description="The license type description")
public Description: string;
/** @description If the license type is not a standard license but instead an extra license option. An example would be sending new letter license. */
// @ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending new letter license.")
public IsExtraLicenseOption: boolean;
/** @description The period of notice for the license in days. */
// @ApiMember(Description="The period of notice for the license in days.")
public PeriodOfNoticeDays: number;
/** @description The license items for the license type */
// @ApiMember(Description="The license items for the license type")
public Items: LicenseItemsResponse[];
/** @description The license prices in each country for the license type */
// @ApiMember(Description="The license prices in each country for the license type")
public Prices: LicensePrice[];
public constructor(init?: Partial<LicenseTypeQueryResponse>) { (Object as any).assign(this, init); }
}
export class IncentiveActionResponse
{
public Id: number;
public Description: string;
public ActionType: IncentiveActionType;
public Page: string;
public Segment: string;
public Element: string;
public LicenseTypeId?: number;
public SuggestedLicenseToUpgrade: LicenseTypeQueryResponse;
public constructor(init?: Partial<IncentiveActionResponse>) { (Object as any).assign(this, init); }
}
export enum IncentiveRecurrenceFrequency
{
OneTime = 1,
Weekly = 2,
Monthly = 3,
}
export enum CriteriaType
{
LicenseAvailability = 'LicenseAvailability',
SmsActivation = 'SmsActivation',
eAccountingActivation = 'eAccountingActivation',
CodeLockActivation = 'CodeLockActivation',
SocialActivation = 'SocialActivation',
OnlinePaymentActivation = 'OnlinePaymentActivation',
FollowUpMessageActivation = 'FollowUpMessageActivation',
RatingActivation = 'RatingActivation',
}
export class IncentiveCriteriaDto
{
public CriteriaType: CriteriaType;
public Value: string;
public InvertCondition: boolean;
public constructor(init?: Partial<IncentiveCriteriaDto>) { (Object as any).assign(this, init); }
}
export class CompanyIncentiveResponse
{
public Id: number;
public Heading: string;
public StorageUrl: string;
public SuccessButtonText: string;
public ActionId: number;
public InitialDelayInSeconds: number;
public MaxDisplayCount?: number;
public ValidFrom: string;
public ValidTo: string;
public Action: IncentiveActionResponse;
public Payload: string;
// @ApiMember()
public Body: string;
// @ApiMember(IsRequired=true)
public Frequency: IncentiveRecurrenceFrequency;
// @ApiMember(IsRequired=true)
public InitialDeferredDays: number;
// @ApiMember()
public RecurrenceInterval: number;
// @ApiMember()
public Active: boolean;
public CompanyIds: string[];
public Criteria: IncentiveCriteriaDto[];
public constructor(init?: Partial<CompanyIncentiveResponse>) { (Object as any).assign(this, init); }
}
export class CompanyIncentivesQueryResponse
{
public Incentives: IList<CompanyIncentiveResponse>;
public CompanyId: string;
public constructor(init?: Partial<CompanyIncentivesQueryResponse>) { (Object as any).assign(this, init); }
}
// @ValidateRequest(Validator="IsAuthenticated")
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
export class CompanyIncentiveQuery implements ICompany
{
/** @description The company id, if empty will use the company id for the user you are logged in with. */
// @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.", IsRequired=true, ParameterType="path")
public CompanyId: string;
public constructor(init?: Partial<CompanyIncentiveQuery>) { (Object as any).assign(this, init); }
}
TypeScript CompanyIncentiveQuery DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /companies/{CompanyId}/incentives HTTP/1.1 Host: api.bookmore.com Accept: application/json
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {}