//
//  ErrorMessage.h
//  CardinalEMVCoSDK
//
//  Copyright © 2018 Cardinal Commerce. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 * The ErrorMessage class represents an error message that is returned by the ACS to the 3DS SDK
 * or an error message that is generated by the 3DS SDK to be returned to the ACS.
 */

@interface ErrorMessage : NSObject

@property (nonatomic, strong, readonly) NSString* transactionID;
@property (nonatomic, strong, readonly) NSString* errorCode;
@property (nonatomic, strong, readonly) NSString* errorDescription;
@property (nonatomic, strong, readonly) NSString* errorDetail;

/**
 * Construct an ErrorMessage object.
 * @param transactionID TransactionId of transaction of which error is associated with.
 * @param errorCode Error Code.
 * @param errorDescription Description of Error.
 * @param errorDetail Detail about the error.
 * @return ErrorMessage
 */
- (id) initWithTransactionID: (NSString *) transactionID
                   errorCode: (NSString *) errorCode
            errorDescription: (NSString *) errorDescription
                 errorDetail: (NSString *) errorDetail;

/**
 * The getTransactionID method returns the Transaction ID.
 * @return NSString
 */
- (NSString *) getTransactionID;

/**
 * The getErrorCode method returns the error code.
 * @return NSString
 */
- (NSString *) getErrorCode;

/**
 * The getErrorDescription method returns text describing the error.
 * @return NSString
 */
- (NSString *) getErrorDescription;

/**
 * The getErrorDetails method provides error details.
 * @return NSString
 */
- (NSString *) getErrorDetails;

@end
