/* Options: Date: 2026-01-22 01:54:44 SwiftVersion: 5.0 Version: 6.110 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://pecuario-backend.develsystems.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True IncludeTypes: GetProductDetails.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/api/v1/products/{ProductId}", "GET") public class GetProductDetails : IReturn, IGet, Codable { public typealias Return = GetProductDetailsResponse public var productId:String required public init(){} } public class GetProductDetailsResponse : BaseResponse { public var details:ProductDetails required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case details } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) details = try container.decodeIfPresent(ProductDetails.self, forKey: .details) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if details != nil { try container.encode(details, forKey: .details) } } } public class Status : Codable { public var message:String public var statusCode:Int required public init(){} } public class BaseResponse : Codable { public var status:Status required public init(){} } public class ProductDetails : Codable { public var id:String public var date:String public var images:[String] = [] public var detailRows:[DetailRow] = [] public var contactEnabled:Bool public var contactLink:String public var priceType:String public var price:String required public init(){} } public class DetailRow : Codable { public var order:Int public var textType:String public var text:String required public init(){} }