// // ActionSetupBiometricsModel.swift // MobileFirstFramework // // Created by Scott Pfeil on 4/5/23. // Copyright © 2023 Verizon Wireless. All rights reserved. // import MVMCore import MVMCoreUI public struct ActionBiometricStateModel: ActionModelProtocol { //-------------------------------------------------- // MARK: - Properties //-------------------------------------------------- public static var identifier: String = "biometricState" public var actionType: String = ActionBiometricStateModel.identifier public var biometricsEnabledAction: ActionModelProtocol public var biometricsDisabledAction: ActionModelProtocol? public var biometricsDeniedAction: ActionModelProtocol? public var extraParameters: JSONValueDictionary? public var analyticsData: JSONValueDictionary? //-------------------------------------------------- // MARK: - Codable //-------------------------------------------------- private enum CodingKeys: String, CodingKey { case actionType case biometricsEnabledAction case biometricsDisabledAction case biometricsDeniedAction case extraParameters case analyticsData } public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) biometricsEnabledAction = try typeContainer.decodeModel(codingKey: .biometricsEnabledAction) biometricsDisabledAction = try typeContainer.decodeModelIfPresent(codingKey: .biometricsDisabledAction) biometricsDeniedAction = try typeContainer.decodeModelIfPresent(codingKey: .biometricsDeniedAction) extraParameters = try typeContainer.decodeIfPresent(JSONValueDictionary.self, forKey: .extraParameters) analyticsData = try typeContainer.decodeIfPresent(JSONValueDictionary.self, forKey: .analyticsData) } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(actionType, forKey: .actionType) try container.encodeModel(biometricsEnabledAction, forKey: .biometricsEnabledAction) try container.encodeModelIfPresent(biometricsDisabledAction, forKey: .biometricsDisabledAction) try container.encodeModelIfPresent(biometricsDeniedAction, forKey: .biometricsDeniedAction) try container.encodeIfPresent(extraParameters, forKey: .extraParameters) try container.encodeIfPresent(analyticsData, forKey: .analyticsData) } }