# coding: utf-8

"""
    eBay Finances API

    This API is used to retrieve seller payouts and monetary transaction details related to those payouts.  # noqa: E501

    OpenAPI spec version: v1.17.2
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class PayoutDetails(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'payout_ids': 'list[str]',
        'payout_reference': 'str'
    }

    attribute_map = {
        'payout_ids': 'payoutIds',
        'payout_reference': 'payoutReference'
    }

    def __init__(self, payout_ids=None, payout_reference=None):  # noqa: E501
        """PayoutDetails - a model defined in Swagger"""  # noqa: E501
        self._payout_ids = None
        self._payout_reference = None
        self.discriminator = None
        if payout_ids is not None:
            self.payout_ids = payout_ids
        if payout_reference is not None:
            self.payout_reference = payout_reference

    @property
    def payout_ids(self):
        """Gets the payout_ids of this PayoutDetails.  # noqa: E501

        This array indicates the list of true(actual) payout ids associated with a split payout. These values can be used as a path parameter for the <b>getPayout</b> method to retrieve details on the associated payouts.  # noqa: E501

        :return: The payout_ids of this PayoutDetails.  # noqa: E501
        :rtype: list[str]
        """
        return self._payout_ids

    @payout_ids.setter
    def payout_ids(self, payout_ids):
        """Sets the payout_ids of this PayoutDetails.

        This array indicates the list of true(actual) payout ids associated with a split payout. These values can be used as a path parameter for the <b>getPayout</b> method to retrieve details on the associated payouts.  # noqa: E501

        :param payout_ids: The payout_ids of this PayoutDetails.  # noqa: E501
        :type: list[str]
        """

        self._payout_ids = payout_ids

    @property
    def payout_reference(self):
        """Gets the payout_reference of this PayoutDetails.  # noqa: E501

        This field contains the unique identifier for the Payout Reference. In split-payout cases, this is the unique identifier reference (not true payout). This field is only returned and will show the associated true(actual) payout id(s) when sellers in Mainland China enable split payouts between a Payoneer account and/or a bank account.  This value can be used by the <b>filter</b> query parameter of the <b>getPayouts</b> method to get the monetary details of each true(actual) payout associated with the payoutReference. <br><br><span class=\"tablenote\"><b>Note:</b>Split-payout functionality will <b>only</b> be available to mainland China sellers.</span>  # noqa: E501

        :return: The payout_reference of this PayoutDetails.  # noqa: E501
        :rtype: str
        """
        return self._payout_reference

    @payout_reference.setter
    def payout_reference(self, payout_reference):
        """Sets the payout_reference of this PayoutDetails.

        This field contains the unique identifier for the Payout Reference. In split-payout cases, this is the unique identifier reference (not true payout). This field is only returned and will show the associated true(actual) payout id(s) when sellers in Mainland China enable split payouts between a Payoneer account and/or a bank account.  This value can be used by the <b>filter</b> query parameter of the <b>getPayouts</b> method to get the monetary details of each true(actual) payout associated with the payoutReference. <br><br><span class=\"tablenote\"><b>Note:</b>Split-payout functionality will <b>only</b> be available to mainland China sellers.</span>  # noqa: E501

        :param payout_reference: The payout_reference of this PayoutDetails.  # noqa: E501
        :type: str
        """

        self._payout_reference = payout_reference

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(PayoutDetails, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, PayoutDetails):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
