BokaMera.API.Host

<back to all web services

CompanyIncentiveQuery

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, bookingsupplier-administrator-read, superadmin
The following routes are available for this service:
GET/companies/{CompanyId}/incentivesIt 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 .jsv suffix or ?format=jsv

HTTP + JSV

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: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	
}