// // ActionRegisterPushNotificationModel.swift // MobileFirstFramework // // Created by Ryan on 3/17/20. // Copyright © 2020 Verizon Wireless. All rights reserved. // import UIKit import MVMCore public struct ActionRegisterPushNotificationModel: ActionModelProtocol { public static var identifier: String = "registerPushNotification" public var actionType: String? = ActionRegisterPushNotificationModel.identifier public var extraParameters: JSONValueDictionary? public var analyticsData: JSONValueDictionary? public var completionAction: ActionModelProtocol? public enum CodingKeys: String, CodingKey { case actionType case extraParameters case analyticsData case completionAction } public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) extraParameters = try typeContainer.decodeIfPresent(JSONValueDictionary.self, forKey: .extraParameters) analyticsData = try typeContainer.decodeIfPresent(JSONValueDictionary.self, forKey: .analyticsData) completionAction = try typeContainer.decodeModelIfPresent(codingKey: .completionAction) } public func encode(to encoder: Encoder) throws { var encoderContainer = encoder.container(keyedBy: CodingKeys.self) try encoderContainer.encodeIfPresent(actionType, forKey: .actionType) try encoderContainer.encodeIfPresent(extraParameters, forKey: .extraParameters) try encoderContainer.encodeIfPresent(analyticsData, forKey: .analyticsData) try encoderContainer.encodeModelIfPresent(completionAction, forKey: .completionAction) } }