/* Options: Date: 2025-12-06 07:51:40 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: PolicyRequiredDocumentRequest.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack // @Route("/v1/PolicyRequiredDocument/GetAllByPolicyAssociateId/{PolicyAssociateId}", "GET") // @Route("/v1/PolicyRequiredDocument/{Id}", "PUT,DELETE,OPTIONS") // @Route("/v1/PolicyRequiredDocument", "POST,OPTIONS") public class PolicyRequiredDocumentRequest : IReturn, Codable { public typealias Return = PolicyRequiredDocumentResponse public var policyRequiredDocument:PolicyRequiredDocumentExtended? public var policyAssociateId:String? public var id:Int? required public init(){} } public class PolicyRequiredDocumentResponse : Codable { public var responseStatus:ResponseStatus? public var policyRequiredDocuments:[PolicyRequiredDocumentExtended] = [] required public init(){} } public class PolicyRequiredDocumentExtended : PolicyRequiredDocument { public var reminders:[PolicyDocumentReminder] = [] public var agentReminders:[ReminderExtended] = [] required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case reminders case agentReminders } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) reminders = try container.decodeIfPresent([PolicyDocumentReminder].self, forKey: .reminders) ?? [] agentReminders = try container.decodeIfPresent([ReminderExtended].self, forKey: .agentReminders) ?? [] } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if reminders.count > 0 { try container.encode(reminders, forKey: .reminders) } if agentReminders.count > 0 { try container.encode(agentReminders, forKey: .agentReminders) } } } public class PolicyDocumentReminder : Codable { public var id:Int? public var policyDocumentId:Int? public var reminderFor:String? public var reminderLeadTime:Int? public var reminderMessage:String? public var adminAgentId:Int? public var needsPrompt:Bool? required public init(){} } public class PolicyDocumentStatus : Codable { public var id:Int? public var name:String? public var isNBCStatus:Bool? public var isAgentStatus:Bool? required public init(){} } public class ReminderExtended : Reminder { public var agentName:String? public var recordAgentName:String? public var recordAgentID:Int? public var isAdmin:Bool? public var agentID:Int? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case agentName case recordAgentName case recordAgentID case isAdmin case agentID } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) agentName = try container.decodeIfPresent(String.self, forKey: .agentName) recordAgentName = try container.decodeIfPresent(String.self, forKey: .recordAgentName) recordAgentID = try container.decodeIfPresent(Int.self, forKey: .recordAgentID) isAdmin = try container.decodeIfPresent(Bool.self, forKey: .isAdmin) agentID = try container.decodeIfPresent(Int.self, forKey: .agentID) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if agentName != nil { try container.encode(agentName, forKey: .agentName) } if recordAgentName != nil { try container.encode(recordAgentName, forKey: .recordAgentName) } if recordAgentID != nil { try container.encode(recordAgentID, forKey: .recordAgentID) } if isAdmin != nil { try container.encode(isAdmin, forKey: .isAdmin) } if agentID != nil { try container.encode(agentID, forKey: .agentID) } } } public class PolicyRequiredDocument : Codable { public var id:Int? public var policyAssociateId:String? public var policyDocumentId:Int? public var nbcStatusId:Int? public var agentStatusId:Int? public var statusOptions:[PolicyDocumentStatus] = [] required public init(){} } public class Reminder : Codable { public var reminderId:String? public var tableName:String? public var fieldName:String? public var recordId:Int? public var reminderDate:Date? public var reminderNote:String? public var createdDate:Date? public var createdBy:String? public var completedDate:Date? required public init(){} }