// // TemplateModel.swift // MVMCoreUI // // Created by Scott Pfeil on 3/13/20. // Copyright © 2020 Verizon Wireless. All rights reserved. // import Foundation @objcMembers public class TemplateModel: MVMControllerModelProtocol { public class var identifier: String { return "" } public var pageType: String public var screenHeading: String? public var isAtomicTabs: Bool? public var navigationItem: (NavigationItemModelProtocol & MoleculeModelProtocol)? public var formRules: [FormGroupRule]? public init(pageType: String) { self.pageType = pageType } private enum CodingKeys: String, CodingKey { case pageType case screenHeading case isAtomicTabs case formRules case navigationItem } required public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) pageType = try typeContainer.decode(String.self, forKey: .pageType) screenHeading = try typeContainer.decodeIfPresent(String.self, forKey: .screenHeading) isAtomicTabs = try typeContainer.decodeIfPresent(Bool.self, forKey: .isAtomicTabs) formRules = try typeContainer.decodeIfPresent([FormGroupRule].self, forKey: .formRules) navigationItem = try typeContainer.decodeModelIfPresent(codingKey: .navigationItem) } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(pageType, forKey: .pageType) try container.encodeIfPresent(screenHeading, forKey: .screenHeading) try container.encodeIfPresent(isAtomicTabs, forKey: .isAtomicTabs) try container.encodeIfPresent(formRules, forKey: .formRules) try container.encodeModelIfPresent(navigationItem, forKey: .navigationItem) } }