/* Options: Date: 2026-06-14 22:05:26 SwiftVersion: 5.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://qp-microservices-booster.richemont.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: ListWarrantyCardsRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/warranty/v1/cards", "GET") public class ListWarrantyCardsRequest : BaseRequest, IReturn { public typealias Return = ListWarrantyCardsResponse public var user:String public var site:String public var system:String public var application:String public var article:String public var ref:String public var serial:String public var page:Int public var size:Int required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case user case site case system case application case article case ref case serial case page case size } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) user = try container.decodeIfPresent(String.self, forKey: .user) site = try container.decodeIfPresent(String.self, forKey: .site) system = try container.decodeIfPresent(String.self, forKey: .system) application = try container.decodeIfPresent(String.self, forKey: .application) article = try container.decodeIfPresent(String.self, forKey: .article) ref = try container.decodeIfPresent(String.self, forKey: .ref) serial = try container.decodeIfPresent(String.self, forKey: .serial) page = try container.decodeIfPresent(Int.self, forKey: .page) size = try container.decodeIfPresent(Int.self, forKey: .size) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if user != nil { try container.encode(user, forKey: .user) } if site != nil { try container.encode(site, forKey: .site) } if system != nil { try container.encode(system, forKey: .system) } if application != nil { try container.encode(application, forKey: .application) } if article != nil { try container.encode(article, forKey: .article) } if ref != nil { try container.encode(ref, forKey: .ref) } if serial != nil { try container.encode(serial, forKey: .serial) } if page != nil { try container.encode(page, forKey: .page) } if size != nil { try container.encode(size, forKey: .size) } } } public class ListWarrantyCardsResponse : BaseResponse { public var warranty:[Warranty] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case warranty } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) warranty = try container.decodeIfPresent([Warranty].self, forKey: .warranty) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if warranty.count > 0 { try container.encode(warranty, forKey: .warranty) } } } public class BaseRequest : IRequest, Codable { public var sid:String public var app:String public var _os:String public var _appVersion:String public var _searchMethod:String required public init(){} } public protocol IRequest { var sid:String { get set } var app:String { get set } } public class BaseResponse : IRespose, Codable { public var _xmlns:String public var _type:String public var _source:String public var _tstamp:String public var _user:String public var _env:String public var _uri:String public var _query:String required public init(){} } public protocol IRespose { var _xmlns:String { get set } var _type:String { get set } var _source:String { get set } var _tstamp:String { get set } var _user:String { get set } var _env:String { get set } var _uri:String { get set } var _query:String { get set } } public class Warranty : Codable { public var article:[Article] = [] public var warrantyId:String public var createdBy:String public var createdAt:String public var issuedBy:String public var selloutId:String public var activationDate:String public var pin:String public var promoterTypeId:String public var promoterTypeDs:String public var site:Site public var crmEnabled:Bool public var canBeExtended:Bool public var canBeRetriggered:Bool required public init(){} } public class Site : ILookupInt, Codable { public var object:String public var id:Int public var name:String public var address:Address public var brands:[Brand] = [] public var users:[User] = [] public var isNfcActive:Int public var isIOsEmbReaderEnable:Int public var crmPrivacyPolicyMandatory:Bool public var crmAllowStoreDataAbroadVisible:Bool public var displayFirstLastNameNotLatin:Bool public var languageTransliteration:String public var crmPrivacyPolicyTimeValleeMandatory:Bool public var crmAllowStoreDataAbroadTimeValleeVisible:Bool public var allowToCreateEndCustomerOutsideChina:Bool public var isTimeVallee:Bool public var doNotDisplayPOSDataInDisclaimers:Bool public var crmFirstNameMandatory:Bool public var manageOwnStock:Bool public var crmCityMandatory:Bool required public init(){} } public class Article : Codable { public var ref:String public var serial:String public var name:String public var site:LookupInt public var brand:String public var isConsignment:Bool required public init(){} } public class Article : Codable { public var ref:String public var serial:String public var name:String public var shortDesc:String public var brand:String public var warrantyStatusId:Int? public var warrantyStatusDesc:String public var warrantyStatusCode:String public var isConsignment:Bool required public init(){} } public class Site : Codable { public var object:String public var id:String public var name:String public var address:Address public var crmPrivacyPolicyMandatory:Bool public var crmAllowStoreDataAbroadVisible:Bool public var isTimeVallee:Bool public var crmPrivacyPolicyTimeValleeMandatory:Bool public var crmAllowStoreDataAbroadTimeValleeVisible:Bool public var allowToCreateEndCustomerOutsideChina:Bool public var displayFirstLastNameNotLatin:Bool public var languageTransliteration:String public var doNotDisplayPOSDataInDisclaimers:Bool public var crmFirstNameMandatory:Bool public var crmCityMandatory:Bool public var manageOwnStock:Bool required public init(){} }