// // StackPageTemplate.swift // MVMCoreUI // // Created by Suresh, Kamlesh on 11/22/19. // Copyright © 2019 Verizon Wireless. All rights reserved. // import Foundation @objcMembers public class StackPageTemplateModel: TemplateModel { public override class var identifier: String { return "stack" } public var header: MoleculeModelProtocol? public var moleculeStack: MoleculeStackModel public var footer: MoleculeModelProtocol? public init(pageType: String, moleculeStack: MoleculeStackModel) { self.moleculeStack = moleculeStack super.init(pageType: pageType) } private enum CodingKeys: String, CodingKey { case pageType case template case screenHeading case header case footer case stack } required public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) moleculeStack = try typeContainer.decode(MoleculeStackModel.self, forKey: .stack) header = try typeContainer.decodeModelIfPresent(codingKey: .header) footer = try typeContainer.decodeModelIfPresent(codingKey: .footer) try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(pageType, forKey: .pageType) try container.encode(template, forKey: .template) try container.encode(moleculeStack, forKey: .stack) try container.encodeModelIfPresent(header, forKey: .header) try container.encodeModelIfPresent(footer, forKey: .footer) } }