# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from jobbing.models.base_model_ import Model
from jobbing import util


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

    Do not edit the class manually.
    """
    def __init__(self, user_id: int=None, uid: str=None, password: str=None, password_date: date=None, email: str=None, role_id: int=None, user_profile_id: int=None):  # noqa: E501
        """User - a model defined in Swagger

        :param user_id: The user_id of this User.  # noqa: E501
        :type user_id: int
        :param uid: The uid of this User.  # noqa: E501
        :type uid: str
        :param password: The password of this User.  # noqa: E501
        :type password: str
        :param password_date: The password_date of this User.  # noqa: E501
        :type password_date: date
        :param email: The email of this User.  # noqa: E501
        :type email: str
        :param role_id: The role_id of this User.  # noqa: E501
        :type role_id: int
        :param user_profile_id: The user_profile_id of this User
        :type user_profile_id: int
        """
        self.swagger_types = {
            'user_id': int,
            'uid': str,
            'password': str,
            'password_date': date,
            'email': str,
            'role_id': int,
            'user_profile_id': int
        }

        self.attribute_map = {
            'user_id': 'userId',
            'uid': 'uid',
            'password': 'password',
            'password_date': '<PASSWORD>',
            'email': 'email',
            'role_id': 'roleId',
            'user_profile_id': 'userProfileId'
        }
        self._user_id = user_id
        self._uid = uid
        self._password = password
        self._password_date = password_date
        self._email = email
        self._role_id = role_id
        self._user_profile_id = user_profile_id

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

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

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

        User id to index table  # noqa: E501

        :return: The user_id of this User.
        :rtype: int
        """
        return self._user_id

    @user_id.setter
    def user_id(self, user_id: int):
        """Sets the user_id of this User.

        User id to index table  # noqa: E501

        :param user_id: The user_id of this User.
        :type user_id: int
        """
        if user_id is None:
            raise ValueError("Invalid value for `user_id`, must not be `None`")  # noqa: E501

        self._user_id = user_id

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

        Public id  # noqa: E501

        :return: The uid of this User.
        :rtype: str
        """
        return self._uid

    @uid.setter
    def uid(self, uid: str):
        """Sets the uid of this User.

        Public id  # noqa: E501

        :param uid: The uid of this User.
        :type uid: str
        """

        self._uid = uid

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

        Keyword to access the app  # noqa: E501

        :return: The password of this User.
        :rtype: str
        """
        return self._password

    @password.setter
    def password(self, password: str):
        """Sets the password of this User.

        Keyword to access the app  # noqa: E501

        :param password: The password of this User.
        :type password: str
        """

        self._password = password

    @property
    def password_date(self) -> date:
        """Gets the password_date of this User.

        Last password updated date  # noqa: E501

        :return: The password_date of this User.
        :rtype: date
        """
        return self._password_date

    @password_date.setter
    def password_date(self, password_date: date):
        """Sets the password_date of this User.

        Last password updated date  # noqa: E501

        :param password_date: The password_date of this User.
        :type password_date: date
        """

        self._password_date = password_date

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

        e-mail related to this account  # noqa: E501

        :return: The email of this User.
        :rtype: str
        """
        return self._email

    @email.setter
    def email(self, email: str):
        """Sets the email of this User.

        e-mail related to this account  # noqa: E501

        :param email: The email of this User.
        :type email: str
        """
        if email is None:
            raise ValueError("Invalid value for `email`, must not be `None`")  # noqa: E501

        self._email = email

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

        Foreign key for the role type assigned to this user  # noqa: E501

        :return: The role_id of this User.
        :rtype: int
        """
        return self._role_id

    @role_id.setter
    def role_id(self, role_id: int):
        """Sets the role_id of this User.

        Foreign key for the role type assigned to this user  # noqa: E501

        :param role_id: The role_id of this User.
        :type role_id: int
        """

        self._role_id = role_id

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

        Foreign key for the user_profile type assigned to this user  # noqa: E501

        :return: The user_profile_id of the UserProfile.
        :rtype: int
        """
        return self._user_profile_id

    @user_profile_id.setter
    def user_profile_id(self, user_profile_id: int):
        """Sets the user_profile_id of this User.

        Foreign key for the role type assigned to this user  # noqa: E501

        :param user_profile_id: The user_profile_id of UserProfile.
        :type user_profile_id: int
        """

        self._user_profile_id = user_profile_id

# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from jobbing.models.base_model_ import Model
from jobbing import util


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

    Do not edit the class manually.
    """
    def __init__(self, user_id: int=None, uid: str=None, password: str=None, password_date: date=None, email: str=None, role_id: int=None, user_profile_id: int=None):  # noqa: E501
        """User - a model defined in Swagger

        :param user_id: The user_id of this User.  # noqa: E501
        :type user_id: int
        :param uid: The uid of this User.  # noqa: E501
        :type uid: str
        :param password: The password of this User.  # noqa: E501
        :type password: str
        :param password_date: The password_date of this User.  # noqa: E501
        :type password_date: date
        :param email: The email of this User.  # noqa: E501
        :type email: str
        :param role_id: The role_id of this User.  # noqa: E501
        :type role_id: int
        :param user_profile_id: The user_profile_id of this User
        :type user_profile_id: int
        """
        self.swagger_types = {
            'user_id': int,
            'uid': str,
            'password': str,
            'password_date': date,
            'email': str,
            'role_id': int,
            'user_profile_id': int
        }

        self.attribute_map = {
            'user_id': 'userId',
            'uid': 'uid',
            'password': 'password',
            'password_date': '<PASSWORD>',
            'email': 'email',
            'role_id': 'roleId',
            'user_profile_id': 'userProfileId'
        }
        self._user_id = user_id
        self._uid = uid
        self._password = password
        self._password_date = password_date
        self._email = email
        self._role_id = role_id
        self._user_profile_id = user_profile_id

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

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

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

        User id to index table  # noqa: E501

        :return: The user_id of this User.
        :rtype: int
        """
        return self._user_id

    @user_id.setter
    def user_id(self, user_id: int):
        """Sets the user_id of this User.

        User id to index table  # noqa: E501

        :param user_id: The user_id of this User.
        :type user_id: int
        """
        if user_id is None:
            raise ValueError("Invalid value for `user_id`, must not be `None`")  # noqa: E501

        self._user_id = user_id

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

        Public id  # noqa: E501

        :return: The uid of this User.
        :rtype: str
        """
        return self._uid

    @uid.setter
    def uid(self, uid: str):
        """Sets the uid of this User.

        Public id  # noqa: E501

        :param uid: The uid of this User.
        :type uid: str
        """

        self._uid = uid

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

        Keyword to access the app  # noqa: E501

        :return: The password of this User.
        :rtype: str
        """
        return self._password

    @password.setter
    def password(self, password: str):
        """Sets the password of this User.

        Keyword to access the app  # noqa: E501

        :param password: The password of this User.
        :type password: str
        """

        self._password = password

    @property
    def password_date(self) -> date:
        """Gets the password_date of this User.

        Last password updated date  # noqa: E501

        :return: The password_date of this User.
        :rtype: date
        """
        return self._password_date

    @password_date.setter
    def password_date(self, password_date: date):
        """Sets the password_date of this User.

        Last password updated date  # noqa: E501

        :param password_date: The password_date of this User.
        :type password_date: date
        """

        self._password_date = password_date

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

        e-mail related to this account  # noqa: E501

        :return: The email of this User.
        :rtype: str
        """
        return self._email

    @email.setter
    def email(self, email: str):
        """Sets the email of this User.

        e-mail related to this account  # noqa: E501

        :param email: The email of this User.
        :type email: str
        """
        if email is None:
            raise ValueError("Invalid value for `email`, must not be `None`")  # noqa: E501

        self._email = email

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

        Foreign key for the role type assigned to this user  # noqa: E501

        :return: The role_id of this User.
        :rtype: int
        """
        return self._role_id

    @role_id.setter
    def role_id(self, role_id: int):
        """Sets the role_id of this User.

        Foreign key for the role type assigned to this user  # noqa: E501

        :param role_id: The role_id of this User.
        :type role_id: int
        """

        self._role_id = role_id

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

        Foreign key for the user_profile type assigned to this user  # noqa: E501

        :return: The user_profile_id of the UserProfile.
        :rtype: int
        """
        return self._user_profile_id

    @user_profile_id.setter
    def user_profile_id(self, user_profile_id: int):
        """Sets the user_profile_id of this User.

        Foreign key for the role type assigned to this user  # noqa: E501

        :param user_profile_id: The user_profile_id of UserProfile.
        :type user_profile_id: int
        """

        self._user_profile_id = user_profile_id

# coding: utf-8 # noqa: F401 # noqa: F401 NOTE: This class is auto generated by the swagger code generator program.      Do not edit the class manually. # noqa: E501 User - a model defined in Swagger          :param user_id: The user_id of this User.  # noqa: E501         :type user_id: int         :param uid: The uid of this User.  # noqa: E501         :type uid: str         :param password: The password of this User.  # noqa: E501         :type password: str         :param password_date: The password_date of this User.  # noqa: E501         :type password_date: date         :param email: The email of this User.  # noqa: E501         :type email: str         :param role_id: The role_id of this User.  # noqa: E501         :type role_id: int         :param user_profile_id: The user_profile_id of this User         :type user_profile_id: int Returns the dict as a model          :param dikt: A dict.         :type: dict         :return: The User of this User.  # noqa: E501         :rtype: User Gets the user_id of this User.          User id to index table  # noqa: E501          :return: The user_id of this User.         :rtype: int Sets the user_id of this User.          User id to index table  # noqa: E501          :param user_id: The user_id of this User.         :type user_id: int # noqa: E501 Gets the uid of this User.          Public id  # noqa: E501          :return: The uid of this User.         :rtype: str Sets the uid of this User.          Public id  # noqa: E501          :param uid: The uid of this User.         :type uid: str Gets the password of this User.          Keyword to access the app  # noqa: E501          :return: The password of this User.         :rtype: str Sets the password of this User.          Keyword to access the app  # noqa: E501          :param password: The password of this User.         :type password: str Gets the password_date of this User.          Last password updated date  # noqa: E501          :return: The password_date of this User.         :rtype: date Sets the password_date of this User.          Last password updated date  # noqa: E501          :param password_date: The password_date of this User.         :type password_date: date Gets the email of this User.          e-mail related to this account  # noqa: E501          :return: The email of this User.         :rtype: str Sets the email of this User.          e-mail related to this account  # noqa: E501          :param email: The email of this User.         :type email: str # noqa: E501 Gets the role_id of this User.          Foreign key for the role type assigned to this user  # noqa: E501          :return: The role_id of this User.         :rtype: int Sets the role_id of this User.          Foreign key for the role type assigned to this user  # noqa: E501          :param role_id: The role_id of this User.         :type role_id: int Gets the user_profile_id of this User.          Foreign key for the user_profile type assigned to this user  # noqa: E501          :return: The user_profile_id of the UserProfile.         :rtype: int Sets the user_profile_id of this User.          Foreign key for the role type assigned to this user  # noqa: E501          :param user_profile_id: The user_profile_id of UserProfile.         :type user_profile_id: int