# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from properly_model_python.models.base_model_ import Model
from properly_model_python import util


class UsersRecommendation(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    def __init__(self, id: str=None, user_id: str=None, enabled: int=None, properly_city_code: str=None, created_at_millis: int=None, updated_at_millis: int=None):  # noqa: E501
        """UsersRecommendation - a model defined in Swagger

        :param id: The id of this UsersRecommendation.  # noqa: E501
        :type id: str
        :param user_id: The user_id of this UsersRecommendation.  # noqa: E501
        :type user_id: str
        :param enabled: The enabled of this UsersRecommendation.  # noqa: E501
        :type enabled: int
        :param properly_city_code: The properly_city_code of this UsersRecommendation.  # noqa: E501
        :type properly_city_code: str
        :param created_at_millis: The created_at_millis of this UsersRecommendation.  # noqa: E501
        :type created_at_millis: int
        :param updated_at_millis: The updated_at_millis of this UsersRecommendation.  # noqa: E501
        :type updated_at_millis: int
        """
        self.swagger_types = {
            'id': str,
            'user_id': str,
            'enabled': int,
            'properly_city_code': str,
            'created_at_millis': int,
            'updated_at_millis': int
        }

        self.attribute_map = {
            'id': 'id',
            'user_id': 'userId',
            'enabled': 'enabled',
            'properly_city_code': 'properlyCityCode',
            'created_at_millis': 'createdAtMillis',
            'updated_at_millis': 'updatedAtMillis'
        }

        self._id = id
        self._user_id = user_id
        self._enabled = enabled
        self._properly_city_code = properly_city_code
        self._created_at_millis = created_at_millis
        self._updated_at_millis = updated_at_millis

    @classmethod
    def from_dict(cls, dikt) -> 'UsersRecommendation':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The UsersRecommendation of this UsersRecommendation.  # noqa: E501
        :rtype: UsersRecommendation
        """
        return util.deserialize_model(dikt, cls)

    @property
    def id(self) -> str:
        """Gets the id of this UsersRecommendation.


        :return: The id of this UsersRecommendation.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id: str):
        """Sets the id of this UsersRecommendation.


        :param id: The id of this UsersRecommendation.
        :type id: str
        """

        self._id = id

    @property
    def user_id(self) -> str:
        """Gets the user_id of this UsersRecommendation.


        :return: The user_id of this UsersRecommendation.
        :rtype: str
        """
        return self._user_id

    @user_id.setter
    def user_id(self, user_id: str):
        """Sets the user_id of this UsersRecommendation.


        :param user_id: The user_id of this UsersRecommendation.
        :type user_id: str
        """

        self._user_id = user_id

    @property
    def enabled(self) -> int:
        """Gets the enabled of this UsersRecommendation.


        :return: The enabled of this UsersRecommendation.
        :rtype: int
        """
        return self._enabled

    @enabled.setter
    def enabled(self, enabled: int):
        """Sets the enabled of this UsersRecommendation.


        :param enabled: The enabled of this UsersRecommendation.
        :type enabled: int
        """

        self._enabled = enabled

    @property
    def properly_city_code(self) -> str:
        """Gets the properly_city_code of this UsersRecommendation.

        properly city code  # noqa: E501

        :return: The properly_city_code of this UsersRecommendation.
        :rtype: str
        """
        return self._properly_city_code

    @properly_city_code.setter
    def properly_city_code(self, properly_city_code: str):
        """Sets the properly_city_code of this UsersRecommendation.

        properly city code  # noqa: E501

        :param properly_city_code: The properly_city_code of this UsersRecommendation.
        :type properly_city_code: str
        """

        self._properly_city_code = properly_city_code

    @property
    def created_at_millis(self) -> int:
        """Gets the created_at_millis of this UsersRecommendation.


        :return: The created_at_millis of this UsersRecommendation.
        :rtype: int
        """
        return self._created_at_millis

    @created_at_millis.setter
    def created_at_millis(self, created_at_millis: int):
        """Sets the created_at_millis of this UsersRecommendation.


        :param created_at_millis: The created_at_millis of this UsersRecommendation.
        :type created_at_millis: int
        """

        self._created_at_millis = created_at_millis

    @property
    def updated_at_millis(self) -> int:
        """Gets the updated_at_millis of this UsersRecommendation.


        :return: The updated_at_millis of this UsersRecommendation.
        :rtype: int
        """
        return self._updated_at_millis

    @updated_at_millis.setter
    def updated_at_millis(self, updated_at_millis: int):
        """Sets the updated_at_millis of this UsersRecommendation.


        :param updated_at_millis: The updated_at_millis of this UsersRecommendation.
        :type updated_at_millis: int
        """

        self._updated_at_millis = updated_at_millis
