# coding: utf-8

"""
    Marketcheck Cars API

    <b>Access the New, Used and Certified cars inventories for all Car Dealers in US.</b> <br/>The data is sourced from online listings by over 44,000 Car dealers in US. At any time, there are about 6.2M searchable listings (about 1.9M unique VINs) for Used & Certified cars and about 6.6M (about 3.9M unique VINs) New Car listings from all over US. We use this API at the back for our website <a href='https://www.marketcheck.com' target='_blank'>www.marketcheck.com</a> and our Android and iOS mobile apps too.<br/><h5> Few useful links : </h5><ul><li>A quick view of the API and the use cases is depicated <a href='https://portals.marketcheck.com/mcapi/' target='_blank'>here</a></li><li>The Postman collection with various usages of the API is shared here https://www.getpostman.com/collections/2752684ff636cdd7bac2</li></ul>  # noqa: E501

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


import pprint
import re  # noqa: F401

import six


class SalesStats(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 = {
        'absolute_mean_deviation': 'str',
        'median': 'str',
        'population_standard_deviation': 'str',
        'variance': 'str',
        'mean': 'str',
        'weighted_mean': 'str',
        'trimmed_mean': 'str',
        'standard_deviation': 'str',
        'iqr': 'str'
    }

    attribute_map = {
        'absolute_mean_deviation': 'absolute_mean_deviation',
        'median': 'median',
        'population_standard_deviation': 'population_standard_deviation',
        'variance': 'variance',
        'mean': 'mean',
        'weighted_mean': 'weighted_mean',
        'trimmed_mean': 'trimmed_mean',
        'standard_deviation': 'standard_deviation',
        'iqr': 'iqr'
    }

    def __init__(self, absolute_mean_deviation=None, median=None, population_standard_deviation=None, variance=None, mean=None, weighted_mean=None, trimmed_mean=None, standard_deviation=None, iqr=None):  # noqa: E501
        """SalesStats - a model defined in Swagger"""  # noqa: E501

        self._absolute_mean_deviation = None
        self._median = None
        self._population_standard_deviation = None
        self._variance = None
        self._mean = None
        self._weighted_mean = None
        self._trimmed_mean = None
        self._standard_deviation = None
        self._iqr = None
        self.discriminator = None

        if absolute_mean_deviation is not None:
            self.absolute_mean_deviation = absolute_mean_deviation
        if median is not None:
            self.median = median
        if population_standard_deviation is not None:
            self.population_standard_deviation = population_standard_deviation
        if variance is not None:
            self.variance = variance
        if mean is not None:
            self.mean = mean
        if weighted_mean is not None:
            self.weighted_mean = weighted_mean
        if trimmed_mean is not None:
            self.trimmed_mean = trimmed_mean
        if standard_deviation is not None:
            self.standard_deviation = standard_deviation
        if iqr is not None:
            self.iqr = iqr

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

        absolute_mean_deviation  # noqa: E501

        :return: The absolute_mean_deviation of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._absolute_mean_deviation

    @absolute_mean_deviation.setter
    def absolute_mean_deviation(self, absolute_mean_deviation):
        """Sets the absolute_mean_deviation of this SalesStats.

        absolute_mean_deviation  # noqa: E501

        :param absolute_mean_deviation: The absolute_mean_deviation of this SalesStats.  # noqa: E501
        :type: str
        """

        self._absolute_mean_deviation = absolute_mean_deviation

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

        median  # noqa: E501

        :return: The median of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._median

    @median.setter
    def median(self, median):
        """Sets the median of this SalesStats.

        median  # noqa: E501

        :param median: The median of this SalesStats.  # noqa: E501
        :type: str
        """

        self._median = median

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

        population_standard_deviation  # noqa: E501

        :return: The population_standard_deviation of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._population_standard_deviation

    @population_standard_deviation.setter
    def population_standard_deviation(self, population_standard_deviation):
        """Sets the population_standard_deviation of this SalesStats.

        population_standard_deviation  # noqa: E501

        :param population_standard_deviation: The population_standard_deviation of this SalesStats.  # noqa: E501
        :type: str
        """

        self._population_standard_deviation = population_standard_deviation

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

        variance  # noqa: E501

        :return: The variance of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._variance

    @variance.setter
    def variance(self, variance):
        """Sets the variance of this SalesStats.

        variance  # noqa: E501

        :param variance: The variance of this SalesStats.  # noqa: E501
        :type: str
        """

        self._variance = variance

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

        mean  # noqa: E501

        :return: The mean of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._mean

    @mean.setter
    def mean(self, mean):
        """Sets the mean of this SalesStats.

        mean  # noqa: E501

        :param mean: The mean of this SalesStats.  # noqa: E501
        :type: str
        """

        self._mean = mean

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

        weighted_mean  # noqa: E501

        :return: The weighted_mean of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._weighted_mean

    @weighted_mean.setter
    def weighted_mean(self, weighted_mean):
        """Sets the weighted_mean of this SalesStats.

        weighted_mean  # noqa: E501

        :param weighted_mean: The weighted_mean of this SalesStats.  # noqa: E501
        :type: str
        """

        self._weighted_mean = weighted_mean

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

        trimmed_mean  # noqa: E501

        :return: The trimmed_mean of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._trimmed_mean

    @trimmed_mean.setter
    def trimmed_mean(self, trimmed_mean):
        """Sets the trimmed_mean of this SalesStats.

        trimmed_mean  # noqa: E501

        :param trimmed_mean: The trimmed_mean of this SalesStats.  # noqa: E501
        :type: str
        """

        self._trimmed_mean = trimmed_mean

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

        standard_deviation  # noqa: E501

        :return: The standard_deviation of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._standard_deviation

    @standard_deviation.setter
    def standard_deviation(self, standard_deviation):
        """Sets the standard_deviation of this SalesStats.

        standard_deviation  # noqa: E501

        :param standard_deviation: The standard_deviation of this SalesStats.  # noqa: E501
        :type: str
        """

        self._standard_deviation = standard_deviation

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

        iqr  # noqa: E501

        :return: The iqr of this SalesStats.  # noqa: E501
        :rtype: str
        """
        return self._iqr

    @iqr.setter
    def iqr(self, iqr):
        """Sets the iqr of this SalesStats.

        iqr  # noqa: E501

        :param iqr: The iqr of this SalesStats.  # noqa: E501
        :type: str
        """

        self._iqr = iqr

    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

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

        return self.__dict__ == other.__dict__

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