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. |
---|
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using BokaMera.API.ServiceModel.Dtos;
using BokaMera.API.ServiceModel.Db.Incentive;
using BokaMera.API.ServiceModel.Db;
namespace BokaMera.API.ServiceModel.Db
{
public partial class BaseModel
{
}
public partial class Country
: BaseModel
{
[References(typeof(BokaMera.API.ServiceModel.Db.Currency))]
public virtual string CurrencyId { get; set; }
public virtual Currency CurrencyInfo { get; set; }
[Required]
public virtual string Name { get; set; }
public virtual string Culture { get; set; }
public virtual string TimeZone { get; set; }
public virtual DateTimeOffset? ModifiedDate { get; set; }
[Required]
public virtual string Id { get; set; }
}
public partial class Currency
: BaseModel
{
[Required]
public virtual string Name { get; set; }
[Required]
public virtual string CurrencySign { get; set; }
[Required]
public virtual bool Active { get; set; }
public virtual DateTimeOffset? ModifiedDate { get; set; }
[Required]
public virtual string Id { get; set; }
}
public partial class LicensePrice
: BaseModel
{
[Ignore]
public virtual Country Country { get; set; }
[Ignore]
public virtual bool MonthlyPayment { get; set; }
[Required]
public virtual int LicenseTypeId { get; set; }
[Required]
public virtual string CountryId { get; set; }
[Required]
public virtual int Price { get; set; }
public virtual DateTimeOffset? ModifiedDate { get; set; }
}
}
namespace BokaMera.API.ServiceModel.Db.Incentive
{
public enum CriteriaType
{
LicenseAvailability,
SmsActivation,
eAccountingActivation,
CodeLockActivation,
SocialActivation,
OnlinePaymentActivation,
FollowUpMessageActivation,
RatingActivation,
}
public enum IncentiveActionType
{
Upgrade = 1,
AddOn = 2,
Information = 3,
}
public enum IncentiveRecurrenceFrequency
{
OneTime = 1,
Weekly = 2,
Monthly = 3,
}
}
namespace BokaMera.API.ServiceModel.Dtos
{
[ValidateRequest("IsAuthenticated")]
[ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)]
public partial class CompanyIncentiveQuery
: ICompany
{
///<summary>
///The company id, if empty will use the company id for the user you are logged in with.
///</summary>
[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 virtual Guid? CompanyId { get; set; }
}
public partial class CompanyIncentiveResponse
{
public CompanyIncentiveResponse()
{
CompanyIds = new List<Guid>{};
Criteria = new List<IncentiveCriteriaDto>{};
}
public virtual int Id { get; set; }
public virtual string Heading { get; set; }
public virtual string StorageUrl { get; set; }
public virtual string SuccessButtonText { get; set; }
public virtual int ActionId { get; set; }
public virtual int InitialDelayInSeconds { get; set; }
public virtual int? MaxDisplayCount { get; set; }
public virtual DateTimeOffset ValidFrom { get; set; }
public virtual DateTimeOffset ValidTo { get; set; }
public virtual IncentiveActionResponse Action { get; set; }
public virtual string Payload { get; set; }
[ApiMember]
public virtual string Body { get; set; }
[ApiMember(IsRequired=true)]
public virtual IncentiveRecurrenceFrequency Frequency { get; set; }
[ApiMember(IsRequired=true)]
public virtual int InitialDeferredDays { get; set; }
[ApiMember]
public virtual uint RecurrenceInterval { get; set; }
[ApiMember]
public virtual bool Active { get; set; }
public virtual List<Guid> CompanyIds { get; set; }
public virtual List<IncentiveCriteriaDto> Criteria { get; set; }
}
public partial class CompanyIncentivesQueryResponse
{
public virtual IList<CompanyIncentiveResponse> Incentives { get; set; }
public virtual Guid CompanyId { get; set; }
}
public partial class IncentiveActionResponse
{
public virtual int Id { get; set; }
public virtual string Description { get; set; }
public virtual IncentiveActionType ActionType { get; set; }
public virtual string Page { get; set; }
public virtual string Segment { get; set; }
public virtual string Element { get; set; }
public virtual int? LicenseTypeId { get; set; }
public virtual LicenseTypeQueryResponse SuggestedLicenseToUpgrade { get; set; }
}
public partial class IncentiveCriteriaDto
{
public virtual CriteriaType CriteriaType { get; set; }
public virtual string Value { get; set; }
public virtual bool InvertCondition { get; set; }
}
public partial class LicenseItemsResponse
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual int AllowedItems { get; set; }
}
public partial class LicenseTypeQueryResponse
{
public LicenseTypeQueryResponse()
{
Items = new List<LicenseItemsResponse>{};
Prices = new List<LicensePrice>{};
}
///<summary>
///The license type id
///</summary>
[ApiMember(Description="The license type id")]
public virtual int Id { get; set; }
///<summary>
///The license type name
///</summary>
[ApiMember(Description="The license type name")]
public virtual string Name { get; set; }
///<summary>
///The license type description
///</summary>
[ApiMember(Description="The license type description")]
public virtual string Description { get; set; }
///<summary>
///If the license type is not a standard license but instead an extra license option. An example would be sending new letter license.
///</summary>
[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 virtual bool IsExtraLicenseOption { get; set; }
///<summary>
///The period of notice for the license in days.
///</summary>
[ApiMember(Description="The period of notice for the license in days.")]
public virtual int PeriodOfNoticeDays { get; set; }
///<summary>
///The license items for the license type
///</summary>
[ApiMember(Description="The license items for the license type")]
public virtual List<LicenseItemsResponse> Items { get; set; }
///<summary>
///The license prices in each country for the license type
///</summary>
[ApiMember(Description="The license prices in each country for the license type")]
public virtual List<LicensePrice> Prices { get; set; }
}
}
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 {}