/* Options: Date: 2025-06-28 08:02:17 SwiftVersion: 5.0 Version: 8.23 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bookmore.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: CompanyIncentiveQuery.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/companies/{CompanyId}/incentives", "GET") // @ValidateRequest(Validator="IsAuthenticated") // @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401) public class CompanyIncentiveQuery : IReturn, ICompany, Codable { public typealias Return = CompanyIncentivesQueryResponse /** * 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 var companyId:String? required public init(){} } public class CompanyIncentivesQueryResponse : Codable { public var incentives:IList public var companyId:String required public init(){} } public protocol ICompany { var companyId:String? { get set } } public enum IncentiveRecurrenceFrequency : Int, Codable { case OneTime = 1 case Weekly = 2 case Monthly = 3 } public class IncentiveCriteriaDto : Codable { public var criteriaType:CriteriaType public var value:String public var invertCondition:Bool required public init(){} } public class CompanyIncentiveResponse : Codable { public var id:Int public var heading:String public var storageUrl:String public var successButtonText:String public var actionId:Int public var initialDelayInSeconds:Int public var maxDisplayCount:Int? public var validFrom:Date public var validTo:Date public var action:IncentiveActionResponse public var payload:String // @ApiMember() public var body:String // @ApiMember(IsRequired=true) public var frequency:IncentiveRecurrenceFrequency // @ApiMember(IsRequired=true) public var initialDeferredDays:Int // @ApiMember() public var recurrenceInterval:UInt32 // @ApiMember() public var active:Bool public var companyIds:[String] = [] public var criteria:[IncentiveCriteriaDto] = [] required public init(){} } public enum CriteriaType : String, Codable { case LicenseAvailability case SmsActivation case eAccountingActivation case CodeLockActivation case SocialActivation case OnlinePaymentActivation case FollowUpMessageActivation case RatingActivation } public class IncentiveActionResponse : Codable { public var id:Int public var Description:String public var actionType:IncentiveActionType public var page:String public var segment:String public var element:String public var licenseTypeId:Int? public var suggestedLicenseToUpgrade:LicenseTypeQueryResponse required public init(){} }