//
//  MTXError.h
//
//  Created by Machine Union (dev361) on 2013-04-12.
//  Copyright (c) 2013 Electronic Arts. All rights reserved.
//

#ifndef MTXError_h
#define MTXError_h

#pragma once

#include "NimbleBase/NimbleCppTypes.h"

namespace EA
{

namespace Nimble
{

namespace MTX
{

enum ErrorCode
{
	NIMBLE_MTX_ERROR_BILLING_NOT_AVAILABLE			= 20000, //< Arbitrary starting integer. Do not hardcode int values.
	NIMBLE_MTX_ERROR_ITEM_ALREADY_OWNED				= 20001,
	NIMBLE_MTX_ERROR_ITEM_NOT_OWNED					= 20002,
	NIMBLE_MTX_ERROR_USER_CANCELED					= 20003,
	NIMBLE_MTX_ERROR_VERIFICATION_ERROR				= 20004,
	NIMBLE_MTX_ERROR_GET_NONCE_ERROR				= 20005,
	NIMBLE_MTX_ERROR_NON_CRITICAL_INTERRUPTION		= 20006,
	NIMBLE_MTX_ERROR_INTERNAL_STATE					= 20007,
	NIMBLE_MTX_ERROR_TRANSACTION_PENDING			= 20008,
	NIMBLE_MTX_ERROR_TRANSACTION_NOT_RESUMABLE		= 20009,
	NIMBLE_MTX_ERROR_UNRECOGNIZED_TRANSACTION_ID	= 20010,
	NIMBLE_MTX_ERROR_INVALID_TRANSACTION_STATE		= 20011,
	NIMBLE_MTX_ERROR_UNABLE_TO_CONSTRUCT_REQUEST	= 20012,
    NIMBLE_MTX_ERROR_PLATFORM_ERROR					= 20013,
    NIMBLE_MTX_ERROR_INVALID_SERVER_RESPONSE		= 20014,
    NIMBLE_MTX_ERROR_GETTING_PREPURCHASE_INFO		= 20015,
    NIMBLE_MTX_ERROR_ITEM_UNAVAILABLE				= 20016,
	NIMBLE_MTX_ERROR_INVALID_SKU					= 20017,
	NIMBLE_MTX_ERROR_TRANSACTION_DEFERRED			= 20018,
	NIMBLE_MTX_ERROR_TRANSACTION_SUPERSEDED			= 20019,
	NIMBLE_MTX_ERROR_EMPTY_SYNERGY_CATALOG			= 20020,
	NIMBLE_MTX_ERROR_EMPTY_BILLING_CATALOG			= 20021,
    NIMBLE_MTX_ERROR_RECEIPT_NOT_PRESENT                = 20022,
    NIMBLE_MTX_ERROR_RECEIPT_CONTAINER_INVALID          = 20023,
    NIMBLE_MTX_ERROR_RECEIPT_CONTAINER_NOT_SIGNED       = 20024,
    NIMBLE_MTX_ERROR_RECEIPT_CONTAINER_NO_DATA          = 20025,
    NIMBLE_MTX_ERROR_RECEIPT_CERTIFICATE_INVALID        = 20026,
    NIMBLE_MTX_ERROR_RECEIPT_SIGNATURE_INVALID          = 20027,
    NIMBLE_MTX_ERROR_RECEIPT_PAYLOAD_INVALID            = 20028,
    NIMBLE_MTX_ERROR_RECEIPT_PAYLOAD_ATTR_INVALID       = 20029,
    NIMBLE_MTX_ERROR_RECEIPT_PAYLOAD_ATTR_TYPE_INVALID  = 20030,
    NIMBLE_MTX_ERROR_RECEIPT_PAYLOAD_ATTR_VER_INVALID   = 20031,
    NIMBLE_MTX_ERROR_RECEIPT_PAYLOAD_ATTR_VAL_INVALID   = 20032,
    NIMBLE_MTX_ERROR_RECEIPT_PAYLOAD_NOT_COMPLETE       = 20033,
    NIMBLE_MTX_ERROR_RECEIPT_BUNDLE_ID_ERROR            = 20034,
    NIMBLE_MTX_ERROR_RECEIPT_BUNDLE_VER_ERROR           = 20035,
    NIMBLE_MTX_ERROR_RECEIPT_HASH_ERROR                 = 20036,
	NIMBLE_MTX_ERROR_ITEM_TYPE_NOT_MATCH			    = 20037,
};

extern const nimstl::string ERROR_DOMAIN;

}

}

}

#endif
