# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class RefundResultModel(Model):
    """The model sent to the client as a part of the payment model.
    Provides details on the refund result.

    :param status: The current status of the refund. Possible values include:
     'Unknown', 'New', 'Authorized', 'Captured', 'Expired', 'Declined',
     'Failed', 'Cancelled', 'Charge Back', 'Refunded', 'Partially Refunded'
    :type status: str or ~softheon.wallet.api.client.models.enum
    :param code: The refund result code.
    :type code: str
    :param message: The refund result message.
    :type message: str
    :param merchant_transaction_id: The Merchant Transaction ID number for the
     payment that is being refunded.
    :type merchant_transaction_id: str
    :param provider_account_id: The unique ID of the provider account that was
     used to make this refund.
    :type provider_account_id: str
    :param amount: The amount to be refunded.  If an amount less than the
     original payment amount is
     specified, a partial refund will be processed.  If no amount is specified,
     a full refund
     will be processed.
    :type amount: float
    :param reason: The reason for issuing the refund.
    :type reason: str
    :param created_date: The timestamp indicating when the refund was created.
    :type created_date: datetime
    """

    _attribute_map = {
        'status': {'key': 'status', 'type': 'str'},
        'code': {'key': 'code', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'merchant_transaction_id': {'key': 'merchantTransactionId', 'type': 'str'},
        'provider_account_id': {'key': 'providerAccountId', 'type': 'str'},
        'amount': {'key': 'amount', 'type': 'float'},
        'reason': {'key': 'reason', 'type': 'str'},
        'created_date': {'key': 'createdDate', 'type': 'iso-8601'},
    }

    def __init__(self, status=None, code=None, message=None, merchant_transaction_id=None, provider_account_id=None, amount=None, reason=None, created_date=None):
        super(RefundResultModel, self).__init__()
        self.status = status
        self.code = code
        self.message = message
        self.merchant_transaction_id = merchant_transaction_id
        self.provider_account_id = provider_account_id
        self.amount = amount
        self.reason = reason
        self.created_date = created_date
