/* Options: Date: 2025-04-05 01:37:19 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://testapi.bokamera.se //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateIncentive.* //ExcludeTypes: //DefaultImports: */ export interface IReturn { createResponse(): T; } export class BaseModel { public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum Currency { SEK = 1, EUR = 2, } 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) { super(init); (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) { super(init); (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) { (Object as any).assign(this, init); } } export class LicenseItemsResponse { public Id: number; public Name: string; public AllowedItems: number; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class LicensePriceResponse { public LicenseTypeId: number; public CountryId: string; public Price: number; public Country: Country; public LicensePlanId: number; public constructor(init?: Partial) { (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: LicensePriceResponse[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export enum IncentiveActionType { Upgrade = 1, AddOn = 2, Information = 3, } export class IncentiveActionResponse { public Id: number; 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; public constructor(init?: Partial) { (Object as any).assign(this, init); } } export class IncentiveCriteria extends BaseModel { public Id: number; public IncentiveId: number; public CriteriaType: CriteriaType; public Value: string; public InvertCondition: boolean; public CreatedDate: string; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } export class AdminIncentiveQueryResponse extends CompanyIncentiveResponse { public Frequency: IncentiveRecurrenceFrequency; public RecurrenceInterval: number; public CreatedDate: string; public ModifiedDate: string; public CompanyIds: string[]; public Criteria: IncentiveCriteria[]; public ApplyToAllCompanies: boolean; public constructor(init?: Partial) { super(init); (Object as any).assign(this, init); } } // @Route("/superadmin/incentives", "POST") // @ValidateRequest(Validator="IsAuthenticated") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) export class CreateIncentive implements IReturn { // @ApiMember(IsRequired=true) public Heading: string; // @ApiMember() public StorageUrl: string; // @ApiMember() public Body: string; // @ApiMember(IsRequired=true) public SuccessButtonText: string; // @ApiMember(IsRequired=true) public ActionId: number; // @ApiMember(IsRequired=true) public Frequency: IncentiveRecurrenceFrequency; // @ApiMember() public RecurrenceInterval: number; // @ApiMember(IsRequired=true) public InitialDelayInSeconds: number; // @ApiMember(IsRequired=true) public MaxDisplayCount: number; // @ApiMember(IsRequired=true) public ValidFrom: string; // @ApiMember(IsRequired=true) public ValidTo: string; // @ApiMember() public Active: boolean; // @ApiMember() public Payload: string; public CompanyIds: string[]; public Criteria: IncentiveCriteriaDto[]; public constructor(init?: Partial) { (Object as any).assign(this, init); } public getTypeName() { return 'CreateIncentive'; } public getMethod() { return 'POST'; } public createResponse() { return new AdminIncentiveQueryResponse(); } }