# 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 SafetyRating(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 = {
        'overall_rating': 'float',
        'roll_over_rating': 'float',
        'driver_side_rating': 'float',
        'driver_front_rating': 'float',
        'passenger_front_rating': 'float'
    }

    attribute_map = {
        'overall_rating': 'overall_rating',
        'roll_over_rating': 'roll_over_rating',
        'driver_side_rating': 'driver_side_rating',
        'driver_front_rating': 'driver_front_rating',
        'passenger_front_rating': 'passenger_front_rating'
    }

    def __init__(self, overall_rating=None, roll_over_rating=None, driver_side_rating=None, driver_front_rating=None, passenger_front_rating=None):  # noqa: E501
        """SafetyRating - a model defined in Swagger"""  # noqa: E501

        self._overall_rating = None
        self._roll_over_rating = None
        self._driver_side_rating = None
        self._driver_front_rating = None
        self._passenger_front_rating = None
        self.discriminator = None

        if overall_rating is not None:
            self.overall_rating = overall_rating
        if roll_over_rating is not None:
            self.roll_over_rating = roll_over_rating
        if driver_side_rating is not None:
            self.driver_side_rating = driver_side_rating
        if driver_front_rating is not None:
            self.driver_front_rating = driver_front_rating
        if passenger_front_rating is not None:
            self.passenger_front_rating = passenger_front_rating

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

        Overall rating of the Listing on scale 1-5  # noqa: E501

        :return: The overall_rating of this SafetyRating.  # noqa: E501
        :rtype: float
        """
        return self._overall_rating

    @overall_rating.setter
    def overall_rating(self, overall_rating):
        """Sets the overall_rating of this SafetyRating.

        Overall rating of the Listing on scale 1-5  # noqa: E501

        :param overall_rating: The overall_rating of this SafetyRating.  # noqa: E501
        :type: float
        """

        self._overall_rating = overall_rating

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

        Roll Over rating of the Listing on scale 1-5  # noqa: E501

        :return: The roll_over_rating of this SafetyRating.  # noqa: E501
        :rtype: float
        """
        return self._roll_over_rating

    @roll_over_rating.setter
    def roll_over_rating(self, roll_over_rating):
        """Sets the roll_over_rating of this SafetyRating.

        Roll Over rating of the Listing on scale 1-5  # noqa: E501

        :param roll_over_rating: The roll_over_rating of this SafetyRating.  # noqa: E501
        :type: float
        """

        self._roll_over_rating = roll_over_rating

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

        Driver Side rating of the Listing on scale 1-5  # noqa: E501

        :return: The driver_side_rating of this SafetyRating.  # noqa: E501
        :rtype: float
        """
        return self._driver_side_rating

    @driver_side_rating.setter
    def driver_side_rating(self, driver_side_rating):
        """Sets the driver_side_rating of this SafetyRating.

        Driver Side rating of the Listing on scale 1-5  # noqa: E501

        :param driver_side_rating: The driver_side_rating of this SafetyRating.  # noqa: E501
        :type: float
        """

        self._driver_side_rating = driver_side_rating

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

        Driver front rating of the Listing on scale 1-5  # noqa: E501

        :return: The driver_front_rating of this SafetyRating.  # noqa: E501
        :rtype: float
        """
        return self._driver_front_rating

    @driver_front_rating.setter
    def driver_front_rating(self, driver_front_rating):
        """Sets the driver_front_rating of this SafetyRating.

        Driver front rating of the Listing on scale 1-5  # noqa: E501

        :param driver_front_rating: The driver_front_rating of this SafetyRating.  # noqa: E501
        :type: float
        """

        self._driver_front_rating = driver_front_rating

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

        Passenger front rating of the Listing on scale 1-5  # noqa: E501

        :return: The passenger_front_rating of this SafetyRating.  # noqa: E501
        :rtype: float
        """
        return self._passenger_front_rating

    @passenger_front_rating.setter
    def passenger_front_rating(self, passenger_front_rating):
        """Sets the passenger_front_rating of this SafetyRating.

        Passenger front rating of the Listing on scale 1-5  # noqa: E501

        :param passenger_front_rating: The passenger_front_rating of this SafetyRating.  # noqa: E501
        :type: float
        """

        self._passenger_front_rating = passenger_front_rating

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

        return self.__dict__ == other.__dict__

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