# coding: utf-8

"""
    Smoker API

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

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

import pprint
import re  # noqa: F401

import six


class SettingsSmoker(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 = {
        'settings_id': 'str',
        'open_close_treshold': 'int',
        'is_auto_mode': 'bool',
        'fire_notifcation_temperatur': 'int',
        'temperatur_update_cycle_seconds': 'int',
        'last_settings_update': 'datetime',
        'last_settings_update_user': 'str',
        'last_settings_activation': 'datetime',
        'alerts': 'list[AlertSmoker]'
    }

    attribute_map = {
        'settings_id': 'settingsId',
        'open_close_treshold': 'openCloseTreshold',
        'is_auto_mode': 'isAutoMode',
        'fire_notifcation_temperatur': 'fireNotifcationTemperatur',
        'temperatur_update_cycle_seconds': 'temperaturUpdateCycleSeconds',
        'last_settings_update': 'lastSettingsUpdate',
        'last_settings_update_user': 'lastSettingsUpdateUser',
        'last_settings_activation': 'lastSettingsActivation',
        'alerts': 'alerts'
    }

    def __init__(self, settings_id=None, open_close_treshold=None, is_auto_mode=None, fire_notifcation_temperatur=None, temperatur_update_cycle_seconds=None, last_settings_update=None, last_settings_update_user=None, last_settings_activation=None, alerts=None):  # noqa: E501
        """SettingsSmoker - a model defined in Swagger"""  # noqa: E501
        self._settings_id = None
        self._open_close_treshold = None
        self._is_auto_mode = None
        self._fire_notifcation_temperatur = None
        self._temperatur_update_cycle_seconds = None
        self._last_settings_update = None
        self._last_settings_update_user = None
        self._last_settings_activation = None
        self._alerts = None
        self.discriminator = None
        if settings_id is not None:
            self.settings_id = settings_id
        if open_close_treshold is not None:
            self.open_close_treshold = open_close_treshold
        if is_auto_mode is not None:
            self.is_auto_mode = is_auto_mode
        if fire_notifcation_temperatur is not None:
            self.fire_notifcation_temperatur = fire_notifcation_temperatur
        if temperatur_update_cycle_seconds is not None:
            self.temperatur_update_cycle_seconds = temperatur_update_cycle_seconds
        if last_settings_update is not None:
            self.last_settings_update = last_settings_update
        if last_settings_update_user is not None:
            self.last_settings_update_user = last_settings_update_user
        if last_settings_activation is not None:
            self.last_settings_activation = last_settings_activation
        if alerts is not None:
            self.alerts = alerts

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


        :return: The settings_id of this SettingsSmoker.  # noqa: E501
        :rtype: str
        """
        return self._settings_id

    @settings_id.setter
    def settings_id(self, settings_id):
        """Sets the settings_id of this SettingsSmoker.


        :param settings_id: The settings_id of this SettingsSmoker.  # noqa: E501
        :type: str
        """

        self._settings_id = settings_id

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


        :return: The open_close_treshold of this SettingsSmoker.  # noqa: E501
        :rtype: int
        """
        return self._open_close_treshold

    @open_close_treshold.setter
    def open_close_treshold(self, open_close_treshold):
        """Sets the open_close_treshold of this SettingsSmoker.


        :param open_close_treshold: The open_close_treshold of this SettingsSmoker.  # noqa: E501
        :type: int
        """

        self._open_close_treshold = open_close_treshold

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


        :return: The is_auto_mode of this SettingsSmoker.  # noqa: E501
        :rtype: bool
        """
        return self._is_auto_mode

    @is_auto_mode.setter
    def is_auto_mode(self, is_auto_mode):
        """Sets the is_auto_mode of this SettingsSmoker.


        :param is_auto_mode: The is_auto_mode of this SettingsSmoker.  # noqa: E501
        :type: bool
        """

        self._is_auto_mode = is_auto_mode

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


        :return: The fire_notifcation_temperatur of this SettingsSmoker.  # noqa: E501
        :rtype: int
        """
        return self._fire_notifcation_temperatur

    @fire_notifcation_temperatur.setter
    def fire_notifcation_temperatur(self, fire_notifcation_temperatur):
        """Sets the fire_notifcation_temperatur of this SettingsSmoker.


        :param fire_notifcation_temperatur: The fire_notifcation_temperatur of this SettingsSmoker.  # noqa: E501
        :type: int
        """

        self._fire_notifcation_temperatur = fire_notifcation_temperatur

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


        :return: The temperatur_update_cycle_seconds of this SettingsSmoker.  # noqa: E501
        :rtype: int
        """
        return self._temperatur_update_cycle_seconds

    @temperatur_update_cycle_seconds.setter
    def temperatur_update_cycle_seconds(self, temperatur_update_cycle_seconds):
        """Sets the temperatur_update_cycle_seconds of this SettingsSmoker.


        :param temperatur_update_cycle_seconds: The temperatur_update_cycle_seconds of this SettingsSmoker.  # noqa: E501
        :type: int
        """

        self._temperatur_update_cycle_seconds = temperatur_update_cycle_seconds

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


        :return: The last_settings_update of this SettingsSmoker.  # noqa: E501
        :rtype: datetime
        """
        return self._last_settings_update

    @last_settings_update.setter
    def last_settings_update(self, last_settings_update):
        """Sets the last_settings_update of this SettingsSmoker.


        :param last_settings_update: The last_settings_update of this SettingsSmoker.  # noqa: E501
        :type: datetime
        """

        self._last_settings_update = last_settings_update

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


        :return: The last_settings_update_user of this SettingsSmoker.  # noqa: E501
        :rtype: str
        """
        return self._last_settings_update_user

    @last_settings_update_user.setter
    def last_settings_update_user(self, last_settings_update_user):
        """Sets the last_settings_update_user of this SettingsSmoker.


        :param last_settings_update_user: The last_settings_update_user of this SettingsSmoker.  # noqa: E501
        :type: str
        """

        self._last_settings_update_user = last_settings_update_user

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


        :return: The last_settings_activation of this SettingsSmoker.  # noqa: E501
        :rtype: datetime
        """
        return self._last_settings_activation

    @last_settings_activation.setter
    def last_settings_activation(self, last_settings_activation):
        """Sets the last_settings_activation of this SettingsSmoker.


        :param last_settings_activation: The last_settings_activation of this SettingsSmoker.  # noqa: E501
        :type: datetime
        """

        self._last_settings_activation = last_settings_activation

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


        :return: The alerts of this SettingsSmoker.  # noqa: E501
        :rtype: list[AlertSmoker]
        """
        return self._alerts

    @alerts.setter
    def alerts(self, alerts):
        """Sets the alerts of this SettingsSmoker.


        :param alerts: The alerts of this SettingsSmoker.  # noqa: E501
        :type: list[AlertSmoker]
        """

        self._alerts = alerts

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

        return self.__dict__ == other.__dict__

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