/* Options: Date: 2025-06-28 10:11:04 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CompanyIncentiveQuery.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export interface ICompany { CompanyId?: string; } 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) { (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) { (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) { (Object as any).assign(this, init); } } export class CompanyIncentivesQueryResponse { public Incentives: IList; public CompanyId: string; public constructor(init?: Partial) { (Object as any).assign(this, init); } } // @Route("/companies/{CompanyId}/incentives", "GET") // @ValidateRequest(Validator="IsAuthenticated") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) export class CompanyIncentiveQuery implements IReturn, 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) { (Object as any).assign(this, init); } public getTypeName() { return 'CompanyIncentiveQuery'; } public getMethod() { return 'GET'; } public createResponse() { return new CompanyIncentivesQueryResponse(); } }