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. |
---|
import 'package:servicestack/servicestack.dart';
enum IncentiveActionType
{
Upgrade,
AddOn,
Information,
}
class LicenseItemsResponse implements IConvertible
{
int? Id;
String? Name;
int? AllowedItems;
LicenseItemsResponse({this.Id,this.Name,this.AllowedItems});
LicenseItemsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Name = json['Name'];
AllowedItems = json['AllowedItems'];
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Name': Name,
'AllowedItems': AllowedItems
};
getTypeName() => "LicenseItemsResponse";
TypeContext? context = _ctx;
}
class BaseModel implements IConvertible
{
BaseModel();
BaseModel.fromJson(Map<String, dynamic> json) : super();
fromMap(Map<String, dynamic> json) {
return this;
}
Map<String, dynamic> toJson() => {};
getTypeName() => "BaseModel";
TypeContext? context = _ctx;
}
class Currency extends BaseModel implements IConvertible
{
// @Required()
String? Name;
// @Required()
String? CurrencySign;
// @Required()
bool? Active;
DateTime? ModifiedDate;
// @Required()
String? Id;
Currency({this.Name,this.CurrencySign,this.Active,this.ModifiedDate,this.Id});
Currency.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Name = json['Name'];
CurrencySign = json['CurrencySign'];
Active = json['Active'];
ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
Id = json['Id'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Name': Name,
'CurrencySign': CurrencySign,
'Active': Active,
'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
'Id': Id
});
getTypeName() => "Currency";
TypeContext? context = _ctx;
}
class Country extends BaseModel implements IConvertible
{
// @References(typeof(Currency))
String? CurrencyId;
Currency? CurrencyInfo;
// @Required()
String? Name;
String? Culture;
String? TimeZone;
DateTime? ModifiedDate;
// @Required()
String? Id;
Country({this.CurrencyId,this.CurrencyInfo,this.Name,this.Culture,this.TimeZone,this.ModifiedDate,this.Id});
Country.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
CurrencyId = json['CurrencyId'];
CurrencyInfo = JsonConverters.fromJson(json['CurrencyInfo'],'Currency',context!);
Name = json['Name'];
Culture = json['Culture'];
TimeZone = json['TimeZone'];
ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
Id = json['Id'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'CurrencyId': CurrencyId,
'CurrencyInfo': JsonConverters.toJson(CurrencyInfo,'Currency',context!),
'Name': Name,
'Culture': Culture,
'TimeZone': TimeZone,
'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!),
'Id': Id
});
getTypeName() => "Country";
TypeContext? context = _ctx;
}
class LicensePrice extends BaseModel implements IConvertible
{
// @Ignore()
Country? Country;
// @Ignore()
bool? MonthlyPayment;
// @Required()
int? LicenseTypeId;
// @Required()
String? CountryId;
// @Required()
int? Price;
DateTime? ModifiedDate;
LicensePrice({this.Country,this.MonthlyPayment,this.LicenseTypeId,this.CountryId,this.Price,this.ModifiedDate});
LicensePrice.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Country = JsonConverters.fromJson(json['Country'],'Country',context!);
MonthlyPayment = json['MonthlyPayment'];
LicenseTypeId = json['LicenseTypeId'];
CountryId = json['CountryId'];
Price = json['Price'];
ModifiedDate = JsonConverters.fromJson(json['ModifiedDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Country': JsonConverters.toJson(Country,'Country',context!),
'MonthlyPayment': MonthlyPayment,
'LicenseTypeId': LicenseTypeId,
'CountryId': CountryId,
'Price': Price,
'ModifiedDate': JsonConverters.toJson(ModifiedDate,'DateTime',context!)
});
getTypeName() => "LicensePrice";
TypeContext? context = _ctx;
}
class LicenseTypeQueryResponse implements IConvertible
{
/**
* The license type id
*/
// @ApiMember(Description="The license type id")
int? Id;
/**
* The license type name
*/
// @ApiMember(Description="The license type name")
String? Name;
/**
* The license type description
*/
// @ApiMember(Description="The license type 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.")
bool? IsExtraLicenseOption;
/**
* The period of notice for the license in days.
*/
// @ApiMember(Description="The period of notice for the license in days.")
int? PeriodOfNoticeDays;
/**
* The license items for the license type
*/
// @ApiMember(Description="The license items for the license type")
List<LicenseItemsResponse>? Items;
/**
* The license prices in each country for the license type
*/
// @ApiMember(Description="The license prices in each country for the license type")
List<LicensePrice>? Prices;
LicenseTypeQueryResponse({this.Id,this.Name,this.Description,this.IsExtraLicenseOption,this.PeriodOfNoticeDays,this.Items,this.Prices});
LicenseTypeQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Id = json['Id'];
Name = json['Name'];
Description = json['Description'];
IsExtraLicenseOption = json['IsExtraLicenseOption'];
PeriodOfNoticeDays = json['PeriodOfNoticeDays'];
Items = JsonConverters.fromJson(json['Items'],'List<LicenseItemsResponse>',context!);
Prices = JsonConverters.fromJson(json['Prices'],'List<LicensePrice>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Id': Id,
'Name': Name,
'Description': Description,
'IsExtraLicenseOption': IsExtraLicenseOption,
'PeriodOfNoticeDays': PeriodOfNoticeDays,
'Items': JsonConverters.toJson(Items,'List<LicenseItemsResponse>',context!),
'Prices': JsonConverters.toJson(Prices,'List<LicensePrice>',context!)
};
getTypeName() => "LicenseTypeQueryResponse";
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<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> 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<String, dynamic> 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;
}
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<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CriteriaType = JsonConverters.fromJson(json['CriteriaType'],'CriteriaType',context!);
Value = json['Value'];
InvertCondition = json['InvertCondition'];
return this;
}
Map<String, dynamic> toJson() => {
'CriteriaType': JsonConverters.toJson(CriteriaType,'CriteriaType',context!),
'Value': Value,
'InvertCondition': InvertCondition
};
getTypeName() => "IncentiveCriteriaDto";
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<String>? CompanyIds;
List<IncentiveCriteriaDto>? 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<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> 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<String>',context!);
Criteria = JsonConverters.fromJson(json['Criteria'],'List<IncentiveCriteriaDto>',context!);
return this;
}
Map<String, dynamic> 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<String>',context!),
'Criteria': JsonConverters.toJson(Criteria,'List<IncentiveCriteriaDto>',context!)
};
getTypeName() => "CompanyIncentiveResponse";
TypeContext? context = _ctx;
}
class CompanyIncentivesQueryResponse implements IConvertible
{
List<CompanyIncentiveResponse>? Incentives;
String? CompanyId;
CompanyIncentivesQueryResponse({this.Incentives,this.CompanyId});
CompanyIncentivesQueryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Incentives = JsonConverters.fromJson(json['Incentives'],'List<CompanyIncentiveResponse>',context!);
CompanyId = json['CompanyId'];
return this;
}
Map<String, dynamic> toJson() => {
'Incentives': JsonConverters.toJson(Incentives,'List<CompanyIncentiveResponse>',context!),
'CompanyId': CompanyId
};
getTypeName() => "CompanyIncentivesQueryResponse";
TypeContext? context = _ctx;
}
// @ValidateRequest(Validator="IsAuthenticated")
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
class CompanyIncentiveQuery implements ICompany, IConvertible
{
/**
* 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")
String? CompanyId;
CompanyIncentiveQuery({this.CompanyId});
CompanyIncentiveQuery.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
CompanyId = json['CompanyId'];
return this;
}
Map<String, dynamic> toJson() => {
'CompanyId': CompanyId
};
getTypeName() => "CompanyIncentiveQuery";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.bookmore.com', types: <String, TypeInfo> {
'IncentiveActionType': TypeInfo(TypeOf.Enum, enumValues:IncentiveActionType.values),
'LicenseItemsResponse': TypeInfo(TypeOf.Class, create:() => LicenseItemsResponse()),
'BaseModel': TypeInfo(TypeOf.Class, create:() => BaseModel()),
'Currency': TypeInfo(TypeOf.Class, create:() => Currency()),
'Country': TypeInfo(TypeOf.Class, create:() => Country()),
'LicensePrice': TypeInfo(TypeOf.Class, create:() => LicensePrice()),
'LicenseTypeQueryResponse': TypeInfo(TypeOf.Class, create:() => LicenseTypeQueryResponse()),
'List<LicenseItemsResponse>': TypeInfo(TypeOf.Class, create:() => <LicenseItemsResponse>[]),
'List<LicensePrice>': TypeInfo(TypeOf.Class, create:() => <LicensePrice>[]),
'IncentiveActionResponse': TypeInfo(TypeOf.Class, create:() => IncentiveActionResponse()),
'IncentiveRecurrenceFrequency': TypeInfo(TypeOf.Enum, enumValues:IncentiveRecurrenceFrequency.values),
'CriteriaType': TypeInfo(TypeOf.Enum, enumValues:CriteriaType.values),
'IncentiveCriteriaDto': TypeInfo(TypeOf.Class, create:() => IncentiveCriteriaDto()),
'CompanyIncentiveResponse': TypeInfo(TypeOf.Class, create:() => CompanyIncentiveResponse()),
'List<IncentiveCriteriaDto>': TypeInfo(TypeOf.Class, create:() => <IncentiveCriteriaDto>[]),
'CompanyIncentivesQueryResponse': TypeInfo(TypeOf.Class, create:() => CompanyIncentivesQueryResponse()),
'List<CompanyIncentiveResponse>': TypeInfo(TypeOf.Class, create:() => <CompanyIncentiveResponse>[]),
'CompanyIncentiveQuery': TypeInfo(TypeOf.Class, create:() => CompanyIncentiveQuery()),
});
Dart 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 {}