/* Options: Date: 2025-06-28 05:43:47 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CreateIncentive.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; enum IncentiveRecurrenceFrequency { OneTime, Weekly, Monthly, } enum CriteriaType { LicenseAvailability, SmsActivation, eAccountingActivation, CodeLockActivation, SocialActivation, OnlinePaymentActivation, FollowUpMessageActivation, RatingActivation, } class IncentiveCriteriaDto implements IConvertible { CriteriaType? CriteriaType; String? Value; bool? InvertCondition; IncentiveCriteriaDto({this.CriteriaType,this.Value,this.InvertCondition}); IncentiveCriteriaDto.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CriteriaType = JsonConverters.fromJson(json['CriteriaType'],'CriteriaType',context!); Value = json['Value']; InvertCondition = json['InvertCondition']; return this; } Map toJson() => { 'CriteriaType': JsonConverters.toJson(CriteriaType,'CriteriaType',context!), 'Value': Value, 'InvertCondition': InvertCondition }; getTypeName() => "IncentiveCriteriaDto"; TypeContext? context = _ctx; } class IncentiveActionResponse implements IConvertible { int? Id; String? Description; IncentiveActionType? ActionType; String? Page; String? Segment; String? Element; int? LicenseTypeId; LicenseTypeQueryResponse? SuggestedLicenseToUpgrade; IncentiveActionResponse({this.Id,this.Description,this.ActionType,this.Page,this.Segment,this.Element,this.LicenseTypeId,this.SuggestedLicenseToUpgrade}); IncentiveActionResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Description = json['Description']; ActionType = JsonConverters.fromJson(json['ActionType'],'IncentiveActionType',context!); Page = json['Page']; Segment = json['Segment']; Element = json['Element']; LicenseTypeId = json['LicenseTypeId']; SuggestedLicenseToUpgrade = JsonConverters.fromJson(json['SuggestedLicenseToUpgrade'],'LicenseTypeQueryResponse',context!); return this; } Map toJson() => { 'Id': Id, 'Description': Description, 'ActionType': JsonConverters.toJson(ActionType,'IncentiveActionType',context!), 'Page': Page, 'Segment': Segment, 'Element': Element, 'LicenseTypeId': LicenseTypeId, 'SuggestedLicenseToUpgrade': JsonConverters.toJson(SuggestedLicenseToUpgrade,'LicenseTypeQueryResponse',context!) }; getTypeName() => "IncentiveActionResponse"; TypeContext? context = _ctx; } class CompanyIncentiveResponse implements IConvertible { int? Id; String? Heading; String? StorageUrl; String? SuccessButtonText; int? ActionId; int? InitialDelayInSeconds; int? MaxDisplayCount; DateTime? ValidFrom; DateTime? ValidTo; IncentiveActionResponse? Action; String? Payload; // @ApiMember() String? Body; // @ApiMember(IsRequired=true) IncentiveRecurrenceFrequency? Frequency; // @ApiMember(IsRequired=true) int? InitialDeferredDays; // @ApiMember() int? RecurrenceInterval; // @ApiMember() bool? Active; List? CompanyIds; List? Criteria; CompanyIncentiveResponse({this.Id,this.Heading,this.StorageUrl,this.SuccessButtonText,this.ActionId,this.InitialDelayInSeconds,this.MaxDisplayCount,this.ValidFrom,this.ValidTo,this.Action,this.Payload,this.Body,this.Frequency,this.InitialDeferredDays,this.RecurrenceInterval,this.Active,this.CompanyIds,this.Criteria}); CompanyIncentiveResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Id = json['Id']; Heading = json['Heading']; StorageUrl = json['StorageUrl']; SuccessButtonText = json['SuccessButtonText']; ActionId = json['ActionId']; InitialDelayInSeconds = json['InitialDelayInSeconds']; MaxDisplayCount = json['MaxDisplayCount']; ValidFrom = JsonConverters.fromJson(json['ValidFrom'],'DateTime',context!); ValidTo = JsonConverters.fromJson(json['ValidTo'],'DateTime',context!); Action = JsonConverters.fromJson(json['Action'],'IncentiveActionResponse',context!); Payload = json['Payload']; Body = json['Body']; Frequency = JsonConverters.fromJson(json['Frequency'],'IncentiveRecurrenceFrequency',context!); InitialDeferredDays = json['InitialDeferredDays']; RecurrenceInterval = json['RecurrenceInterval']; Active = json['Active']; CompanyIds = JsonConverters.fromJson(json['CompanyIds'],'List',context!); Criteria = JsonConverters.fromJson(json['Criteria'],'List',context!); return this; } Map toJson() => { 'Id': Id, 'Heading': Heading, 'StorageUrl': StorageUrl, 'SuccessButtonText': SuccessButtonText, 'ActionId': ActionId, 'InitialDelayInSeconds': InitialDelayInSeconds, 'MaxDisplayCount': MaxDisplayCount, 'ValidFrom': JsonConverters.toJson(ValidFrom,'DateTime',context!), 'ValidTo': JsonConverters.toJson(ValidTo,'DateTime',context!), 'Action': JsonConverters.toJson(Action,'IncentiveActionResponse',context!), 'Payload': Payload, 'Body': Body, 'Frequency': JsonConverters.toJson(Frequency,'IncentiveRecurrenceFrequency',context!), 'InitialDeferredDays': InitialDeferredDays, 'RecurrenceInterval': RecurrenceInterval, 'Active': Active, 'CompanyIds': JsonConverters.toJson(CompanyIds,'List',context!), 'Criteria': JsonConverters.toJson(Criteria,'List',context!) }; getTypeName() => "CompanyIncentiveResponse"; TypeContext? context = _ctx; } class BaseModel implements IConvertible { BaseModel(); BaseModel.fromJson(Map json) : super(); fromMap(Map json) { return this; } Map toJson() => {}; getTypeName() => "BaseModel"; TypeContext? context = _ctx; } class IncentiveCriteria extends BaseModel implements IConvertible { int? Id; int? IncentiveId; CriteriaType? CriteriaType; String? Value; bool? InvertCondition; DateTime? CreatedDate; IncentiveCriteria({this.Id,this.IncentiveId,this.CriteriaType,this.Value,this.InvertCondition,this.CreatedDate}); IncentiveCriteria.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Id = json['Id']; IncentiveId = json['IncentiveId']; CriteriaType = JsonConverters.fromJson(json['CriteriaType'],'CriteriaType',context!); Value = json['Value']; InvertCondition = json['InvertCondition']; CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); return this; } Map toJson() => super.toJson()..addAll({ 'Id': Id, 'IncentiveId': IncentiveId, 'CriteriaType': JsonConverters.toJson(CriteriaType,'CriteriaType',context!), 'Value': Value, 'InvertCondition': InvertCondition, 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!) }); getTypeName() => "IncentiveCriteria"; TypeContext? context = _ctx; } class AdminIncentiveQueryResponse extends CompanyIncentiveResponse implements IConvertible { IncentiveRecurrenceFrequency? Frequency; int? RecurrenceInterval; DateTime? CreatedDate; DateTime? ModifiedDate; List? CompanyIds; List? Criteria; bool? ApplyToAllCompanies; IncentiveActionResponse? Action; AdminIncentiveQueryResponse({this.Frequency,this.RecurrenceInterval,this.CreatedDate,this.ModifiedDate,this.CompanyIds,this.Criteria,this.ApplyToAllCompanies,this.Action}); AdminIncentiveQueryResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); Frequency = JsonConverters.fromJson(json['Frequency'],'IncentiveRecurrenceFrequency',context!); RecurrenceInterval = json['RecurrenceInterval']; CreatedDate = JsonConverters.fromJson(json['CreatedDate'],'DateTime',context!); ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!); CompanyIds = JsonConverters.fromJson(json['CompanyIds'],'List',context!); Criteria = JsonConverters.fromJson(json['Criteria'],'List',context!); ApplyToAllCompanies = json['ApplyToAllCompanies']; Action = JsonConverters.fromJson(json['Action'],'IncentiveActionResponse',context!); return this; } Map toJson() => super.toJson()..addAll({ 'Frequency': JsonConverters.toJson(Frequency,'IncentiveRecurrenceFrequency',context!), 'RecurrenceInterval': RecurrenceInterval, 'CreatedDate': JsonConverters.toJson(CreatedDate,'DateTime',context!), 'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!), 'CompanyIds': JsonConverters.toJson(CompanyIds,'List',context!), 'Criteria': JsonConverters.toJson(Criteria,'List',context!), 'ApplyToAllCompanies': ApplyToAllCompanies, 'Action': JsonConverters.toJson(Action,'IncentiveActionResponse',context!) }); getTypeName() => "AdminIncentiveQueryResponse"; TypeContext? context = _ctx; } // @Route("/superadmin/incentives", "POST") // @ValidateRequest(Validator="IsAuthenticated") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) class CreateIncentive implements IReturn, IConvertible, IPost { // @ApiMember(IsRequired=true) String? Heading; // @ApiMember() String? StorageUrl; // @ApiMember() String? Body; // @ApiMember(IsRequired=true) String? SuccessButtonText; // @ApiMember(IsRequired=true) int? ActionId; // @ApiMember(IsRequired=true) IncentiveRecurrenceFrequency? Frequency; // @ApiMember() int? RecurrenceInterval; // @ApiMember(IsRequired=true) int? InitialDelayInSeconds; // @ApiMember(IsRequired=true) int? MaxDisplayCount; // @ApiMember(IsRequired=true) DateTime? ValidFrom; // @ApiMember(IsRequired=true) DateTime? ValidTo; // @ApiMember() bool? Active; // @ApiMember() String? Payload; List? CompanyIds; List? Criteria; /** * Number of days to wait after first display attempt before displaying the incentive. Set to 0 to show immediately. */ // @ApiMember(Description="Number of days to wait after first display attempt before displaying the incentive. Set to 0 to show immediately.", IsRequired=true) int? InitialDeferredDays; CreateIncentive({this.Heading,this.StorageUrl,this.Body,this.SuccessButtonText,this.ActionId,this.Frequency,this.RecurrenceInterval,this.InitialDelayInSeconds,this.MaxDisplayCount,this.ValidFrom,this.ValidTo,this.Active,this.Payload,this.CompanyIds,this.Criteria,this.InitialDeferredDays}); CreateIncentive.fromJson(Map json) { fromMap(json); } fromMap(Map json) { Heading = json['Heading']; StorageUrl = json['StorageUrl']; Body = json['Body']; SuccessButtonText = json['SuccessButtonText']; ActionId = json['ActionId']; Frequency = JsonConverters.fromJson(json['Frequency'],'IncentiveRecurrenceFrequency',context!); RecurrenceInterval = json['RecurrenceInterval']; InitialDelayInSeconds = json['InitialDelayInSeconds']; MaxDisplayCount = json['MaxDisplayCount']; ValidFrom = JsonConverters.fromJson(json['ValidFrom'],'DateTime',context!); ValidTo = JsonConverters.fromJson(json['ValidTo'],'DateTime',context!); Active = json['Active']; Payload = json['Payload']; CompanyIds = JsonConverters.fromJson(json['CompanyIds'],'List',context!); Criteria = JsonConverters.fromJson(json['Criteria'],'List',context!); InitialDeferredDays = json['InitialDeferredDays']; return this; } Map toJson() => { 'Heading': Heading, 'StorageUrl': StorageUrl, 'Body': Body, 'SuccessButtonText': SuccessButtonText, 'ActionId': ActionId, 'Frequency': JsonConverters.toJson(Frequency,'IncentiveRecurrenceFrequency',context!), 'RecurrenceInterval': RecurrenceInterval, 'InitialDelayInSeconds': InitialDelayInSeconds, 'MaxDisplayCount': MaxDisplayCount, 'ValidFrom': JsonConverters.toJson(ValidFrom,'DateTime',context!), 'ValidTo': JsonConverters.toJson(ValidTo,'DateTime',context!), 'Active': Active, 'Payload': Payload, 'CompanyIds': JsonConverters.toJson(CompanyIds,'List',context!), 'Criteria': JsonConverters.toJson(Criteria,'List',context!), 'InitialDeferredDays': InitialDeferredDays }; createResponse() => AdminIncentiveQueryResponse(); getResponseTypeName() => "AdminIncentiveQueryResponse"; getTypeName() => "CreateIncentive"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.bookmore.com', types: { 'IncentiveRecurrenceFrequency': TypeInfo(TypeOf.Enum, enumValues:IncentiveRecurrenceFrequency.values), 'CriteriaType': TypeInfo(TypeOf.Enum, enumValues:CriteriaType.values), 'IncentiveCriteriaDto': TypeInfo(TypeOf.Class, create:() => IncentiveCriteriaDto()), 'IncentiveActionResponse': TypeInfo(TypeOf.Class, create:() => IncentiveActionResponse()), 'IncentiveActionType': TypeInfo(TypeOf.Class, create:() => IncentiveActionType()), 'LicenseTypeQueryResponse': TypeInfo(TypeOf.Class, create:() => LicenseTypeQueryResponse()), 'CompanyIncentiveResponse': TypeInfo(TypeOf.Class, create:() => CompanyIncentiveResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'BaseModel': TypeInfo(TypeOf.Class, create:() => BaseModel()), 'IncentiveCriteria': TypeInfo(TypeOf.Class, create:() => IncentiveCriteria()), 'AdminIncentiveQueryResponse': TypeInfo(TypeOf.Class, create:() => AdminIncentiveQueryResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CreateIncentive': TypeInfo(TypeOf.Class, create:() => CreateIncentive()), });