/* Options: Date: 2026-08-27 08:13:23 SwiftVersion: 6.0 Version: 10.08 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-api-booster.richemont.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: GetSaleDetails.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/warranty", "GET") public class GetSaleDetails : IReturn, IPagedRequest, Codable { public typealias Return = GetSaleDetailsResponse /** * Richemont Brand ID */ // @ApiMember(Description="Richemont Brand ID", IsRequired=true) public var brand:String? /** * Richemont POS code */ // @ApiMember(Description="Richemont POS code", IsRequired=true) public var posCode:String? /** * Receipt or Invoice Number */ // @ApiMember(Description="Receipt or Invoice Number") public var documentNumber:String? /** * Date of the Sell-out Start */ // @ApiMember(Description="Date of the Sell-out Start ") public var documentDateFrom:Date? /** * Date of the Sell-out End */ // @ApiMember(Description="Date of the Sell-out End") public var documentDateTo:Date? /** * Richemont Reference Code of the item */ // @ApiMember(Description="Richemont Reference Code of the item") public var articleCode:String? /** * Serial Number of the item */ // @ApiMember(Description="Serial Number of the item") public var serialNumber:String? /** * Unique Identifier of the Sell-out created in Booster */ // @ApiMember(Description="Unique Identifier of the Sell-out created in Booster") public var saleDetailId:Int? /** * Unique Identifier of the Sell-out created in Booster */ // @ApiMember(Description="Unique Identifier of the Sell-out created in Booster") public var saleId:Int? /** * Booster Customer Id */ // @ApiMember(Description="Booster Customer Id") public var boosterCustomerId:Int? /** * Possible warranty extention status IDs, 1 (Activated), 2 (Requested), 3 (Refused), 4 (Error), 5 (Action Required), 6 (Pending) */ // @ApiMember(Description="Possible warranty extention status IDs, 1 (Activated), 2 (Requested), 3 (Refused), 4 (Error), 5 (Action Required), 6 (Pending)") public var warrantyExtensionStatusIds:[Int]? /** * Product Categories */ // @ApiMember(Description="Product Categories") public var productCategories:[ProductCategory]? /** * Index of the result set returned */ // @ApiMember(Description="Index of the result set returned", IsRequired=true) public var page:Int? /** * Size of the result set returned */ // @ApiMember(Description="Size of the result set returned", IsRequired=true) public var items:Int? /** * Omit precise record count - save on performance */ // @ApiMember(Description="Omit precise record count - save on performance") public var noCount:Bool? /** * Sort Expression, Possible values: 'SaleDetailIdDESC', 'DocumentDate'. */ // @ApiMember(Description="Sort Expression, Possible values: 'SaleDetailIdDESC', 'DocumentDate'.") public var sortBy:String? required public init(){} } public class GetSaleDetailsResponse : Codable { /** * Index of the result set returnedr */ // @ApiMember(Description="Index of the result set returnedr", IsRequired=true) public var page:Int? /** * Size of the result set returned */ // @ApiMember(Description="Size of the result set returned", IsRequired=true) public var items:Int? /** * Total amount of pages / result sets */ // @ApiMember(Description="Total amount of pages / result sets", IsRequired=true) public var totalPages:Int? /** * Total amount of results */ // @ApiMember(Description="Total amount of results", IsRequired=true) public var totalResults:Int? /** * List of Sale Details */ // @ApiMember(Description="List of Sale Details", IsRequired=true) public var elements:[SaleDetail]? required public init(){} } public class ProductCategory : Codable { /** * Brand Category ID */ // @ApiMember(Description="Brand Category ID") public var brandCategoryId:String? /** * Grand Category ID */ // @ApiMember(Description="Grand Category ID", IsRequired=true) public var grandCategoryId:String? /** * Master Category ID */ // @ApiMember(Description="Master Category ID") public var masterCategoryId:String? /** * Category ID */ // @ApiMember(Description="Category ID") public var categoryId:String? /** * Sub Category ID */ // @ApiMember(Description="Sub Category ID") public var subCategoryId:String? required public init(){} } public protocol IPagedRequest { var page:Int? { get set } var items:Int? { get set } var noCount:Bool? { get set } var sortBy:String? { get set } } public class ProductCategory : Codable { /** * Brand Category ID */ // @ApiMember(Description="Brand Category ID") public var brandCategoryId:String? /** * Grand Category ID */ // @ApiMember(Description="Grand Category ID") public var grandCategoryId:String? /** * Master Category ID */ // @ApiMember(Description="Master Category ID") public var masterCategoryId:String? /** * Category ID */ // @ApiMember(Description="Category ID") public var categoryId:String? /** * Sub Category ID */ // @ApiMember(Description="Sub Category ID") public var subCategoryId:String? required public init(){} } public class SaleDetail : Codable { /** * Unique Identifier of the Sell-out created in Booster */ // @ApiMember(Description="Unique Identifier of the Sell-out created in Booster", IsRequired=true) public var saleId:Int? /** * Unique Identifier of the Sell-out created in Booster */ // @ApiMember(Description="Unique Identifier of the Sell-out created in Booster", IsRequired=true) public var saleDetailId:Int? /** * Booster Customer Id */ // @ApiMember(Description="Booster Customer Id") public var boosterCustomerId:Int? /** * Richemont POS code */ // @ApiMember(Description="Richemont POS code", IsRequired=true) public var posCode:String? /** * Receipt or Invoice Number */ // @ApiMember(Description="Receipt or Invoice Number") public var documentNumber:String? /** * Date of the Sell-out */ // @ApiMember(Description="Date of the Sell-out", IsRequired=true) public var documentDate:String? /** * Position Number */ // @ApiMember(Description="Position Number") public var documentLineNumber:Int? /** * Richemont Reference Code of the item */ // @ApiMember(Description="Richemont Reference Code of the item", IsRequired=true) public var articleCode:String? /** * Serial Number of the item */ // @ApiMember(Description="Serial Number of the item") public var serialNumber:String? /** * Use positive for standard Sell-out and negative quantity for return */ // @ApiMember(Description="Use positive for standard Sell-out and negative quantity for return", IsRequired=true) public var quantity:Int? /** * Retail Price */ // @ApiMember(Description="Retail Price") public var retailPrice:Double? /** * Sold Price */ // @ApiMember(Description="Sold Price") public var unitPrice:Double? /** * Currency of the sold price */ // @ApiMember(Description="Currency of the sold price") public var currencyCode:String? /** * CCP Status Code */ // @ApiMember(Description="CCP Status Code") public var ccpStatusCode:String? /** * CCP Status Description */ // @ApiMember(Description="CCP Status Description") public var ccpStatusDescription:String? /** * CCP Retrigger enable */ // @ApiMember(Description="CCP Retrigger enable") public var retriggerEnabled:Bool? /** * Warranty Extention Status */ // @ApiMember(Description="Warranty Extention Status") public var warrantyExtentionStatusId:Int? /** * Warranty Extention Status */ // @ApiMember(Description="Warranty Extention Status") public var warrantyExtentionStatusDescription:String? /** * Sale Representative Email */ // @ApiMember(Description="Sale Representative Email") public var saleRepresentativeEmails:[String]? /** * Promoter Type IDs, possible values are: DAI, FIT, GRT */ // @ApiMember(Description="Promoter Type IDs, possible values are: DAI, FIT, GRT") public var promoterTypeId:String? /** * Sellout Type, possible values are: 'standard' or 'consigned' */ // @ApiMember(Description="Sellout Type, possible values are: 'standard' or 'consigned'", IsRequired=true) public var type:String? /** * Original Sale Detail Id */ // @ApiMember(Description="Original Sale Detail Id") public var originalSaleDetailId:Int? /** * Sale Reason Id: 'NEW' or 'CPO' */ // @ApiMember(Description="Sale Reason Id: 'NEW' or 'CPO'", IsRequired=true) public var saleReasonId:String? required public init(){} }