/* Options: Date: 2026-02-14 10:18:41 SwiftVersion: 6.0 Version: 10.04 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://stf-api-uat.data-xchange.co.za //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: SearchItemDataNotification.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Item Data Notification */ // @Route("/itemDataNotification/search", "POST") // @Api(Description="Item Data Notification") // @ApiResponse(Description="Paged ItemDataNotification data", IsDefaultResponse=true, ResponseType=typeof(0, Culture=neutral, PublicKeyToken=null]]), StatusCode=200) public class SearchItemDataNotification : IReturn, Codable { public typealias Return = PagedQueryResponseWithToken> /** * Search query */ // @ApiMember(Description="Search query", ParameterType="model") public var query:SearchItemDataNotificationQuery? required public init(){} } public class PagedQueryResponseWithToken : PagedQueryResult> { public var continuationToken:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case continuationToken } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) continuationToken = try container.decodeIfPresent(String.self, forKey: .continuationToken) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if continuationToken != nil { try container.encode(continuationToken, forKey: .continuationToken) } } } public class SearchItemDataNotificationQuery : ISearchItemDataNotification, Codable { public var receiverGln:String? public var senderGln:String? public var partnerGln:[String] = [] public var requestedPage:Int? public var numberOfRecordsPerPage:Int? public var continuationToken:String? public var categoryCode:String? public var identifier:String? public var tradeItemDescription:String? public var gtin:String? public var orderBy:String? public var order:ORDER? required public init(){} } public class PagedQueryResult : Codable { public var startIndex:Int? public var endIndex:Int? public var numberOfRecordsReturned:Int? public var totalNumberOfPages:Int? public var totalNumberOfRecords:Int? public var results:[T] = [] required public init(){} } public protocol IFilteredQuery { var receiverGln:String? { get set } var senderGln:String? { get set } var partnerGln:[String] { get set } } public protocol IPagedQuery { var requestedPage:Int? { get set } var numberOfRecordsPerPage:Int? { get set } } public enum ORDER : String, Codable { case ASC case DESC } public protocol IOrderedQuery { var orderBy:String? { get set } var order:ORDER? { get set } } public protocol ISearchItemDataNotification : IFilteredQuery, IPagedQuery, IOrderedQuery { var continuationToken:String? { get set } var categoryCode:String? { get set } var identifier:String? { get set } }