# coding: utf-8

"""
    Feed API

    <p>The <strong>Feed API</strong> lets sellers upload input files, download reports and files including their status, filter reports using URI parameters, and retrieve customer service metrics task details.</p>  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class OrderFilterCriteria(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 = {
        'creation_date_range': 'DateRange',
        'modified_date_range': 'DateRange',
        'order_status': 'str'
    }

    attribute_map = {
        'creation_date_range': 'creationDateRange',
        'modified_date_range': 'modifiedDateRange',
        'order_status': 'orderStatus'
    }

    def __init__(self, creation_date_range=None, modified_date_range=None, order_status=None):  # noqa: E501
        """OrderFilterCriteria - a model defined in Swagger"""  # noqa: E501
        self._creation_date_range = None
        self._modified_date_range = None
        self._order_status = None
        self.discriminator = None
        if creation_date_range is not None:
            self.creation_date_range = creation_date_range
        if modified_date_range is not None:
            self.modified_date_range = modified_date_range
        if order_status is not None:
            self.order_status = order_status

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


        :return: The creation_date_range of this OrderFilterCriteria.  # noqa: E501
        :rtype: DateRange
        """
        return self._creation_date_range

    @creation_date_range.setter
    def creation_date_range(self, creation_date_range):
        """Sets the creation_date_range of this OrderFilterCriteria.


        :param creation_date_range: The creation_date_range of this OrderFilterCriteria.  # noqa: E501
        :type: DateRange
        """

        self._creation_date_range = creation_date_range

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


        :return: The modified_date_range of this OrderFilterCriteria.  # noqa: E501
        :rtype: DateRange
        """
        return self._modified_date_range

    @modified_date_range.setter
    def modified_date_range(self, modified_date_range):
        """Sets the modified_date_range of this OrderFilterCriteria.


        :param modified_date_range: The modified_date_range of this OrderFilterCriteria.  # noqa: E501
        :type: DateRange
        """

        self._modified_date_range = modified_date_range

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

        The order status of the orders returned. If the filter is omitted from createOrderTask call, orders that are in both ACTIVE and COMPLETED states are returned. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/sell/feed/types/api:OrderStatusEnum'>eBay API documentation</a>  # noqa: E501

        :return: The order_status of this OrderFilterCriteria.  # noqa: E501
        :rtype: str
        """
        return self._order_status

    @order_status.setter
    def order_status(self, order_status):
        """Sets the order_status of this OrderFilterCriteria.

        The order status of the orders returned. If the filter is omitted from createOrderTask call, orders that are in both ACTIVE and COMPLETED states are returned. For implementation help, refer to <a href='https://developer.ebay.com/api-docs/sell/feed/types/api:OrderStatusEnum'>eBay API documentation</a>  # noqa: E501

        :param order_status: The order_status of this OrderFilterCriteria.  # noqa: E501
        :type: str
        """

        self._order_status = order_status

    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(OrderFilterCriteria, 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, OrderFilterCriteria):
            return False

        return self.__dict__ == other.__dict__

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