# coding: utf-8

"""
    applicants-api

    This API collection enables seamless operations by facilitating the retrieval of essential applicant details, updating and managing hiring statuses for candidates, assigning multiple candidates as leads for specific job roles, and obtaining detailed activity logs associated with applicants.  # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: phenom
"""

import pprint
import re  # noqa: F401

import six

class HiringStatusActivitiesData(object):
    """
    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 = {
        'recruiters_user_id': 'str',
        'recruiter_name': 'str',
        'candidate_id': 'str',
        'action_type': 'str',
        'created_date': 'float',
        'request_source': 'str',
        'additional_field_name': 'str',
        'previous_value': 'str',
        'updated_value': 'str',
        'action_value': 'str',
        'subject': 'str',
        'content': 'str',
        'category_name': 'str',
        'email_response': 'str',
        'from_email': 'str',
        'from_name': 'str',
        'to_email': 'str',
        'to_name': 'str',
        'recipe_name': 'str',
        'added_new_value': 'str'
    }

    attribute_map = {
        'recruiters_user_id': 'recruitersUserId',
        'recruiter_name': 'recruiterName',
        'candidate_id': 'candidateId',
        'action_type': 'actionType',
        'created_date': 'createdDate',
        'request_source': 'requestSource',
        'additional_field_name': 'additionalFieldName',
        'previous_value': 'previousValue',
        'updated_value': 'updatedValue',
        'action_value': 'actionValue',
        'subject': 'subject',
        'content': 'content',
        'category_name': 'categoryName',
        'email_response': 'emailResponse',
        'from_email': 'fromEmail',
        'from_name': 'fromName',
        'to_email': 'toEmail',
        'to_name': 'toName',
        'recipe_name': 'recipeName',
        'added_new_value': 'addedNewValue'
    }

    def __init__(self, recruiters_user_id=None, recruiter_name=None, candidate_id=None, action_type=None, created_date=None, request_source=None, additional_field_name=None, previous_value=None, updated_value=None, action_value=None, subject=None, content=None, category_name=None, email_response=None, from_email=None, from_name=None, to_email=None, to_name=None, recipe_name=None, added_new_value=None):  # noqa: E501
        """HiringStatusActivitiesData - a model defined in Swagger"""  # noqa: E501
        self._recruiters_user_id = None
        self._recruiter_name = None
        self._candidate_id = None
        self._action_type = None
        self._created_date = None
        self._request_source = None
        self._additional_field_name = None
        self._previous_value = None
        self._updated_value = None
        self._action_value = None
        self._subject = None
        self._content = None
        self._category_name = None
        self._email_response = None
        self._from_email = None
        self._from_name = None
        self._to_email = None
        self._to_name = None
        self._recipe_name = None
        self._added_new_value = None
        self.discriminator = None
        if recruiters_user_id is not None:
            self.recruiters_user_id = recruiters_user_id
        if recruiter_name is not None:
            self.recruiter_name = recruiter_name
        if candidate_id is not None:
            self.candidate_id = candidate_id
        if action_type is not None:
            self.action_type = action_type
        if created_date is not None:
            self.created_date = created_date
        if request_source is not None:
            self.request_source = request_source
        if additional_field_name is not None:
            self.additional_field_name = additional_field_name
        if previous_value is not None:
            self.previous_value = previous_value
        if updated_value is not None:
            self.updated_value = updated_value
        if action_value is not None:
            self.action_value = action_value
        if subject is not None:
            self.subject = subject
        if content is not None:
            self.content = content
        if category_name is not None:
            self.category_name = category_name
        if email_response is not None:
            self.email_response = email_response
        if from_email is not None:
            self.from_email = from_email
        if from_name is not None:
            self.from_name = from_name
        if to_email is not None:
            self.to_email = to_email
        if to_name is not None:
            self.to_name = to_name
        if recipe_name is not None:
            self.recipe_name = recipe_name
        if added_new_value is not None:
            self.added_new_value = added_new_value

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

        User ID of the recruiter associated with the activity.  # noqa: E501

        :return: The recruiters_user_id of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._recruiters_user_id

    @recruiters_user_id.setter
    def recruiters_user_id(self, recruiters_user_id):
        """Sets the recruiters_user_id of this HiringStatusActivitiesData.

        User ID of the recruiter associated with the activity.  # noqa: E501

        :param recruiters_user_id: The recruiters_user_id of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._recruiters_user_id = recruiters_user_id

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

        Name of the recruiter associated with the activity.  # noqa: E501

        :return: The recruiter_name of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._recruiter_name

    @recruiter_name.setter
    def recruiter_name(self, recruiter_name):
        """Sets the recruiter_name of this HiringStatusActivitiesData.

        Name of the recruiter associated with the activity.  # noqa: E501

        :param recruiter_name: The recruiter_name of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._recruiter_name = recruiter_name

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

        ID of the candidate associated with the activity.  # noqa: E501

        :return: The candidate_id of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._candidate_id

    @candidate_id.setter
    def candidate_id(self, candidate_id):
        """Sets the candidate_id of this HiringStatusActivitiesData.

        ID of the candidate associated with the activity.  # noqa: E501

        :param candidate_id: The candidate_id of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._candidate_id = candidate_id

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

        Type of action performed in the activity.  # noqa: E501

        :return: The action_type of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._action_type

    @action_type.setter
    def action_type(self, action_type):
        """Sets the action_type of this HiringStatusActivitiesData.

        Type of action performed in the activity.  # noqa: E501

        :param action_type: The action_type of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._action_type = action_type

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

        Date when the activity was created.  # noqa: E501

        :return: The created_date of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: float
        """
        return self._created_date

    @created_date.setter
    def created_date(self, created_date):
        """Sets the created_date of this HiringStatusActivitiesData.

        Date when the activity was created.  # noqa: E501

        :param created_date: The created_date of this HiringStatusActivitiesData.  # noqa: E501
        :type: float
        """

        self._created_date = created_date

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

        Source of the activity request.  # noqa: E501

        :return: The request_source of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._request_source

    @request_source.setter
    def request_source(self, request_source):
        """Sets the request_source of this HiringStatusActivitiesData.

        Source of the activity request.  # noqa: E501

        :param request_source: The request_source of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._request_source = request_source

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

        Name of the additional field associated with the activity.  # noqa: E501

        :return: The additional_field_name of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._additional_field_name

    @additional_field_name.setter
    def additional_field_name(self, additional_field_name):
        """Sets the additional_field_name of this HiringStatusActivitiesData.

        Name of the additional field associated with the activity.  # noqa: E501

        :param additional_field_name: The additional_field_name of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._additional_field_name = additional_field_name

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

        Previous value of the additional field.  # noqa: E501

        :return: The previous_value of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._previous_value

    @previous_value.setter
    def previous_value(self, previous_value):
        """Sets the previous_value of this HiringStatusActivitiesData.

        Previous value of the additional field.  # noqa: E501

        :param previous_value: The previous_value of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._previous_value = previous_value

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

        Updated value of the additional field.  # noqa: E501

        :return: The updated_value of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._updated_value

    @updated_value.setter
    def updated_value(self, updated_value):
        """Sets the updated_value of this HiringStatusActivitiesData.

        Updated value of the additional field.  # noqa: E501

        :param updated_value: The updated_value of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._updated_value = updated_value

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

        Value associated with the action.  # noqa: E501

        :return: The action_value of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._action_value

    @action_value.setter
    def action_value(self, action_value):
        """Sets the action_value of this HiringStatusActivitiesData.

        Value associated with the action.  # noqa: E501

        :param action_value: The action_value of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._action_value = action_value

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

        Subject of the activity.  # noqa: E501

        :return: The subject of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._subject

    @subject.setter
    def subject(self, subject):
        """Sets the subject of this HiringStatusActivitiesData.

        Subject of the activity.  # noqa: E501

        :param subject: The subject of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._subject = subject

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

        Content of the activity.  # noqa: E501

        :return: The content of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._content

    @content.setter
    def content(self, content):
        """Sets the content of this HiringStatusActivitiesData.

        Content of the activity.  # noqa: E501

        :param content: The content of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._content = content

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

        Name of the category associated with the activity.  # noqa: E501

        :return: The category_name of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._category_name

    @category_name.setter
    def category_name(self, category_name):
        """Sets the category_name of this HiringStatusActivitiesData.

        Name of the category associated with the activity.  # noqa: E501

        :param category_name: The category_name of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._category_name = category_name

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

        Email response associated with the activity.  # noqa: E501

        :return: The email_response of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._email_response

    @email_response.setter
    def email_response(self, email_response):
        """Sets the email_response of this HiringStatusActivitiesData.

        Email response associated with the activity.  # noqa: E501

        :param email_response: The email_response of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._email_response = email_response

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

        Email address from which the activity originated.  # noqa: E501

        :return: The from_email of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._from_email

    @from_email.setter
    def from_email(self, from_email):
        """Sets the from_email of this HiringStatusActivitiesData.

        Email address from which the activity originated.  # noqa: E501

        :param from_email: The from_email of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._from_email = from_email

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

        Name associated with the sender of the activity.  # noqa: E501

        :return: The from_name of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._from_name

    @from_name.setter
    def from_name(self, from_name):
        """Sets the from_name of this HiringStatusActivitiesData.

        Name associated with the sender of the activity.  # noqa: E501

        :param from_name: The from_name of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._from_name = from_name

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

        Email address of the recipient of the activity.  # noqa: E501

        :return: The to_email of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._to_email

    @to_email.setter
    def to_email(self, to_email):
        """Sets the to_email of this HiringStatusActivitiesData.

        Email address of the recipient of the activity.  # noqa: E501

        :param to_email: The to_email of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._to_email = to_email

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

        Name of the recipient of the activity.  # noqa: E501

        :return: The to_name of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._to_name

    @to_name.setter
    def to_name(self, to_name):
        """Sets the to_name of this HiringStatusActivitiesData.

        Name of the recipient of the activity.  # noqa: E501

        :param to_name: The to_name of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._to_name = to_name

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

        Name of the recipe associated with the activity.  # noqa: E501

        :return: The recipe_name of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._recipe_name

    @recipe_name.setter
    def recipe_name(self, recipe_name):
        """Sets the recipe_name of this HiringStatusActivitiesData.

        Name of the recipe associated with the activity.  # noqa: E501

        :param recipe_name: The recipe_name of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._recipe_name = recipe_name

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

        New value added in the activity.  # noqa: E501

        :return: The added_new_value of this HiringStatusActivitiesData.  # noqa: E501
        :rtype: str
        """
        return self._added_new_value

    @added_new_value.setter
    def added_new_value(self, added_new_value):
        """Sets the added_new_value of this HiringStatusActivitiesData.

        New value added in the activity.  # noqa: E501

        :param added_new_value: The added_new_value of this HiringStatusActivitiesData.  # noqa: E501
        :type: str
        """

        self._added_new_value = added_new_value

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

        return self.__dict__ == other.__dict__

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