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

import NevisMobileAuthentication

struct OnSuccessMessage: ChannelOutMessage {
	// MARK: Properties

	let operationId: String
	var authorizationProvider: TypedAuthorizationProvider?
	var outOfBandPayload: OutOfBandPayload?

	// MARK: Initialization

	init(operationId: String) {
		self.operationId = operationId
	}

	init(operationId: String, data: (some Any)? = nil) {
		self.operationId = operationId
		guard let data else { return }
		if let authorizationProvider = data as? AuthorizationProvider {
			self.authorizationProvider = TypedAuthorizationProvider(wrapped: authorizationProvider)
		}
		else if let payload = data as? OutOfBandPayload {
			self.outOfBandPayload = payload
		}
	}
}
