//
// Copyright © 2023 Nevis Security AG. All rights reserved.
//

import NevisMobileAuthentication

class PinChangeMessage: StandardOperationMessage {
	// MARK: Properties

	var username: String?
	var pinPolicyMessage: PinPolicyMessage?
	let pinChangerProvided: Bool

	// MARK: Decodable

	enum CodingKeys: String, CodingKey {
		case username
		case pinPolicyMessage
		case pinChangerProvided
	}

	required init(from decoder: Decoder) throws {
		let container = try decoder.container(keyedBy: CodingKeys.self)
		self.username = try container.decodeIfPresent(String.self, forKey: .username)
		self.pinPolicyMessage = try container.decodeIfPresent(PinPolicyMessage.self, forKey: .pinPolicyMessage)
		self.pinChangerProvided = try container.decode(Bool.self, forKey: .pinChangerProvided)
		try super.init(from: decoder)
	}
}
