/* Options: Date: 2026-05-19 10:48:52 SwiftVersion: 5.0 Version: 8.22 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://dev-api-booster.richemont.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetSaleDetails.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //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? required public init(){} }