/* Options: Date: 2025-09-08 02:56:10 SwiftVersion: 6.0 Version: 8.81 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://account.servicestack.net //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: Buy.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/buy/{Id}") // @Route("/buy/{Id}/{Quantity}") // @Route("/Buy", "GET") // @Route("/Buy/{Id}", "GET") public class Buy : IReturn, IGet, Codable { public typealias Return = BuyResponse public var id:String? public var coupon:String? public var quantity:Int? public var renewalRef:String? public var upgradeRef:String? required public init(){} } public class BuyResponse : Codable { public var coupon:String? public var renewalRef:String? public var upgradeRef:String? public var sku:Sku? public var quote:QuoteResponse? public var responseStatus:ResponseStatus? required public init(){} } public class Sku : Codable { public var id:Int? public var productId:Int? public var type:SkuType? public var feature:LicenseFeature? public var code:String? public var name:String? public var notes:String? // @Ignore() public var minQty:Int? public var maxQty:Int? public var price:Int? public var plan:String? public var discountOff:Int? public var discountLabelOff:String? public var actualPrice:Int? public var isPlan:Bool? public var isRenewal:Bool? public var subscriptionDurationDays:Int? public var expiryDurationDays:Int? public var trialPeriodDays:Int? public var supportQty:Int? public var coresQty:Int? public var createdDate:Date? public var modifiedDate:Date? public var licenseType:LicenseType? public var active:Bool? required public init(){} } public enum SkuType : String, Codable { case Product case PerDev case PerCore case Site case Support case Training case Register case Payment } public enum LicenseType : String, Codable { case Free case FreeIndividual case FreeOpenSource case Indie case Business case Enterprise case TextIndie case TextBusiness case OrmLiteIndie case OrmLiteBusiness case RedisIndie case RedisBusiness case AwsIndie case AwsBusiness case Trial case Site case TextSite case RedisSite case OrmLiteSite } // @Flags() public enum LicenseFeature : Int, Codable { case None = 0 case Free = 0 case Premium = 1 case Text = 2 case Client = 4 case Common = 8 case Redis = 16 case RedisSku = 18 case OrmLite = 32 case OrmLiteSku = 34 case ServiceStack = 64 case Server = 128 case Razor = 256 case Admin = 512 case Aws = 1024 case AwsSku = 1026 case All = 2047 } public class QuoteResponse : Codable { public var skuId:Int? public var code:String? public var customerId:Int? public var modifyingExistingSubscription:Bool? public var changingSubscriptions:Bool? public var switchingLicensingModels:Bool? public var replacesExistingQuantity:Bool? public var existingSubscriptionQuantity:Int? public var newSubscriptionQuantity:Int? public var unusedAmount:String? public var manualProrating:Bool? public var unusedDays:Int? public var quantity:Int? public var minQuantity:Int? public var maxQuantity:Int? public var subtotal:String? public var discountDescription:String? public var discountReceived:String? public var discount:String? public var total:String? public var expiryDate:String? public var renewalDate:String? public var isReferrer:Bool? public var responseStatus:ResponseStatus? required public init(){} }