# coding: utf-8

"""
    Getir-Locals Integration Swagger Documentation

    This documentation is created by Getir Developers for Getir-Locals Integration.For this integration, you need to take CLIENT NAME and CLIENT SECRET keys from Getir-dev team and use these keys for authentication. You also need to use access token provided after successful login to be able to use all other endpoints  You can view information about the active order through /orders/unapproved endpoints. The status of the order is managed via verify, prepare, handover and cancel endpoints. Details on order management are as follows:  For orders to be made by the Getir courier, the flow is as follows:  Supplier confirms order --verify<br />Supplier prepares order --prepare (1-2 minutes must pass before delivery)<br />Supplier hands over the order to Getir courier --handover<br />For Getir delivery, transactions are made by the Getir courier after handover.  A valid reason will be requested from the supplier to cancel an order. Valid reasons may vary depending on the instant status of the order. For this reason, before canceling an order, you have to get instant valid order cancellation reasons from /orders/{orderId}/cancel-options endpoint.   # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class BagResponse(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 = {
        'name': 'NameResponse',
        'img_url': 'str',
        'wide_img_url': 'str',
        'max_count': 'int',
        'min_count': 'int',
        'unit_price': 'float',
        'unit_volume': 'int'
    }

    attribute_map = {
        'name': 'name',
        'img_url': 'imgUrl',
        'wide_img_url': 'wideImgUrl',
        'max_count': 'maxCount',
        'min_count': 'minCount',
        'unit_price': 'unitPrice',
        'unit_volume': 'unitVolume'
    }

    def __init__(self, name=None, img_url=None, wide_img_url=None, max_count=None, min_count=None, unit_price=None, unit_volume=None):  # noqa: E501
        """BagResponse - a model defined in Swagger"""  # noqa: E501
        self._name = None
        self._img_url = None
        self._wide_img_url = None
        self._max_count = None
        self._min_count = None
        self._unit_price = None
        self._unit_volume = None
        self.discriminator = None
        if name is not None:
            self.name = name
        if img_url is not None:
            self.img_url = img_url
        if wide_img_url is not None:
            self.wide_img_url = wide_img_url
        if max_count is not None:
            self.max_count = max_count
        if min_count is not None:
            self.min_count = min_count
        if unit_price is not None:
            self.unit_price = unit_price
        if unit_volume is not None:
            self.unit_volume = unit_volume

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


        :return: The name of this BagResponse.  # noqa: E501
        :rtype: NameResponse
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this BagResponse.


        :param name: The name of this BagResponse.  # noqa: E501
        :type: NameResponse
        """

        self._name = name

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


        :return: The img_url of this BagResponse.  # noqa: E501
        :rtype: str
        """
        return self._img_url

    @img_url.setter
    def img_url(self, img_url):
        """Sets the img_url of this BagResponse.


        :param img_url: The img_url of this BagResponse.  # noqa: E501
        :type: str
        """

        self._img_url = img_url

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


        :return: The wide_img_url of this BagResponse.  # noqa: E501
        :rtype: str
        """
        return self._wide_img_url

    @wide_img_url.setter
    def wide_img_url(self, wide_img_url):
        """Sets the wide_img_url of this BagResponse.


        :param wide_img_url: The wide_img_url of this BagResponse.  # noqa: E501
        :type: str
        """

        self._wide_img_url = wide_img_url

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


        :return: The max_count of this BagResponse.  # noqa: E501
        :rtype: int
        """
        return self._max_count

    @max_count.setter
    def max_count(self, max_count):
        """Sets the max_count of this BagResponse.


        :param max_count: The max_count of this BagResponse.  # noqa: E501
        :type: int
        """

        self._max_count = max_count

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


        :return: The min_count of this BagResponse.  # noqa: E501
        :rtype: int
        """
        return self._min_count

    @min_count.setter
    def min_count(self, min_count):
        """Sets the min_count of this BagResponse.


        :param min_count: The min_count of this BagResponse.  # noqa: E501
        :type: int
        """

        self._min_count = min_count

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


        :return: The unit_price of this BagResponse.  # noqa: E501
        :rtype: float
        """
        return self._unit_price

    @unit_price.setter
    def unit_price(self, unit_price):
        """Sets the unit_price of this BagResponse.


        :param unit_price: The unit_price of this BagResponse.  # noqa: E501
        :type: float
        """

        self._unit_price = unit_price

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


        :return: The unit_volume of this BagResponse.  # noqa: E501
        :rtype: int
        """
        return self._unit_volume

    @unit_volume.setter
    def unit_volume(self, unit_volume):
        """Sets the unit_volume of this BagResponse.


        :param unit_volume: The unit_volume of this BagResponse.  # noqa: E501
        :type: int
        """

        self._unit_volume = unit_volume

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

        return self.__dict__ == other.__dict__

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