/* Options: Date: 2026-02-14 10:19:46 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: SearchSenderPurchaseCondition.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Purchase Conditions */ // @Route("/purchaseCondition/search/sender", "POST") // @Api(Description="Purchase Conditions") // @ApiResponse(Description="Paged Purchase data", IsDefaultResponse=true, ResponseType=typeof(0, Culture=neutral, PublicKeyToken=null]]), StatusCode=200) public class SearchSenderPurchaseCondition : IReturn, Codable { public typealias Return = PagedQueryResponseWithToken /** * Search query */ // @ApiMember(Description="Search query", ParameterType="model") public var query:SearchPurchaseConditionByDateFilter? 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 SearchPurchaseConditionByDateFilter : ISearchPurchaseConditionByDateFilter, Codable { public var fromDate:Date? public var toDate:Date? public var continuationToken:String? public var requestedPage:Int? public var numberOfRecordsPerPage:Int? 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 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 ISearchPurchaseConditionByDateFilter : IPagedQuery, IOrderedQuery { var fromDate:Date? { get set } var toDate:Date? { get set } var continuationToken:String? { get set } }