/* Options: Date: 2025-12-06 06:10:41 SwiftVersion: 6.0 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: PeraContactTrackingRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v1/Report/PeraContactTracking/{ParamStartDate}/{ParamEndDate}", "GET,OPTIONS") // @Route("/v1/Report/PeraContactTracking/{ParamStartDate}/{ParamEndDate}/{AgentID}", "GET,OPTIONS") public class PeraContactTrackingRequest : IReturn, Codable { public typealias Return = PeraContactTrackingResponse public var paramStartDate:Date? public var paramEndDate:Date? public var agentID:Int? required public init(){} } public class PeraContactTrackingResponse : Codable { public var responseStatus:ResponseStatus? public var afPeraContact:[PeraContactTracking] = [] required public init(){} } public class PeraContactTracking : AFPeraContact { public var agent:String? public var followUpDate:Date? public var district:String? public var note:String? public var eventTypeName:String? public var avp:String? public var rvp:String? public var mvp:String? public var sale:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case agent case followUpDate case district case note case eventTypeName case avp case rvp case mvp case sale } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) agent = try container.decodeIfPresent(String.self, forKey: .agent) followUpDate = try container.decodeIfPresent(Date.self, forKey: .followUpDate) district = try container.decodeIfPresent(String.self, forKey: .district) note = try container.decodeIfPresent(String.self, forKey: .note) eventTypeName = try container.decodeIfPresent(String.self, forKey: .eventTypeName) avp = try container.decodeIfPresent(String.self, forKey: .avp) rvp = try container.decodeIfPresent(String.self, forKey: .rvp) mvp = try container.decodeIfPresent(String.self, forKey: .mvp) sale = try container.decodeIfPresent(String.self, forKey: .sale) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if agent != nil { try container.encode(agent, forKey: .agent) } if followUpDate != nil { try container.encode(followUpDate, forKey: .followUpDate) } if district != nil { try container.encode(district, forKey: .district) } if note != nil { try container.encode(note, forKey: .note) } if eventTypeName != nil { try container.encode(eventTypeName, forKey: .eventTypeName) } if avp != nil { try container.encode(avp, forKey: .avp) } if rvp != nil { try container.encode(rvp, forKey: .rvp) } if mvp != nil { try container.encode(mvp, forKey: .mvp) } if sale != nil { try container.encode(sale, forKey: .sale) } } } public class AFPeraContact : Codable { public var peraContactId:Int? public var firstName:String? public var lastName:String? public var appointmentDateTime:Date? public var dateCreated:Date? public var agentId:Int? required public init(){} }