# coding: utf-8

"""
    hrm-api

    Hiring Manager can view all the pending tasks and evaluate the interview if any pending interviews.  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class JobDetailsTenantSpecificAdditionalFields(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 = {
        'job_classification': 'str',
        'maximumsalary': 'str',
        'minimumsalary': 'float',
        'pay_rate': 'str',
        'shift_details': 'str',
        'custom_ref_id': 'str',
        'is_remote': 'float',
        'worker_type': 'str',
        'store_number': 'str',
        'job_profile_id': 'str'
    }

    attribute_map = {
        'job_classification': 'jobClassification',
        'maximumsalary': 'maximumsalary',
        'minimumsalary': 'minimumsalary',
        'pay_rate': 'payRate',
        'shift_details': 'shiftDetails',
        'custom_ref_id': 'customRefId',
        'is_remote': 'isRemote',
        'worker_type': 'workerType',
        'store_number': 'storeNumber',
        'job_profile_id': 'jobProfileId'
    }

    def __init__(self, job_classification=None, maximumsalary=None, minimumsalary=None, pay_rate=None, shift_details=None, custom_ref_id=None, is_remote=None, worker_type=None, store_number=None, job_profile_id=None):  # noqa: E501
        """JobDetailsTenantSpecificAdditionalFields - a model defined in Swagger"""  # noqa: E501
        self._job_classification = None
        self._maximumsalary = None
        self._minimumsalary = None
        self._pay_rate = None
        self._shift_details = None
        self._custom_ref_id = None
        self._is_remote = None
        self._worker_type = None
        self._store_number = None
        self._job_profile_id = None
        self.discriminator = None
        if job_classification is not None:
            self.job_classification = job_classification
        if maximumsalary is not None:
            self.maximumsalary = maximumsalary
        if minimumsalary is not None:
            self.minimumsalary = minimumsalary
        if pay_rate is not None:
            self.pay_rate = pay_rate
        if shift_details is not None:
            self.shift_details = shift_details
        if custom_ref_id is not None:
            self.custom_ref_id = custom_ref_id
        if is_remote is not None:
            self.is_remote = is_remote
        if worker_type is not None:
            self.worker_type = worker_type
        if store_number is not None:
            self.store_number = store_number
        if job_profile_id is not None:
            self.job_profile_id = job_profile_id

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

        Classification of the job.  # noqa: E501

        :return: The job_classification of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._job_classification

    @job_classification.setter
    def job_classification(self, job_classification):
        """Sets the job_classification of this JobDetailsTenantSpecificAdditionalFields.

        Classification of the job.  # noqa: E501

        :param job_classification: The job_classification of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._job_classification = job_classification

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

        Maximum salary offered for the job.  # noqa: E501

        :return: The maximumsalary of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._maximumsalary

    @maximumsalary.setter
    def maximumsalary(self, maximumsalary):
        """Sets the maximumsalary of this JobDetailsTenantSpecificAdditionalFields.

        Maximum salary offered for the job.  # noqa: E501

        :param maximumsalary: The maximumsalary of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._maximumsalary = maximumsalary

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

        Minimum salary offered for the job.  # noqa: E501

        :return: The minimumsalary of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: float
        """
        return self._minimumsalary

    @minimumsalary.setter
    def minimumsalary(self, minimumsalary):
        """Sets the minimumsalary of this JobDetailsTenantSpecificAdditionalFields.

        Minimum salary offered for the job.  # noqa: E501

        :param minimumsalary: The minimumsalary of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: float
        """

        self._minimumsalary = minimumsalary

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

        Pay rate of the job.  # noqa: E501

        :return: The pay_rate of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._pay_rate

    @pay_rate.setter
    def pay_rate(self, pay_rate):
        """Sets the pay_rate of this JobDetailsTenantSpecificAdditionalFields.

        Pay rate of the job.  # noqa: E501

        :param pay_rate: The pay_rate of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._pay_rate = pay_rate

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

        Shift details of the job.  # noqa: E501

        :return: The shift_details of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._shift_details

    @shift_details.setter
    def shift_details(self, shift_details):
        """Sets the shift_details of this JobDetailsTenantSpecificAdditionalFields.

        Shift details of the job.  # noqa: E501

        :param shift_details: The shift_details of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._shift_details = shift_details

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

        Custom reference ID of the job.  # noqa: E501

        :return: The custom_ref_id of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._custom_ref_id

    @custom_ref_id.setter
    def custom_ref_id(self, custom_ref_id):
        """Sets the custom_ref_id of this JobDetailsTenantSpecificAdditionalFields.

        Custom reference ID of the job.  # noqa: E501

        :param custom_ref_id: The custom_ref_id of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._custom_ref_id = custom_ref_id

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

        Whether it's a remote job.  # noqa: E501

        :return: The is_remote of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: float
        """
        return self._is_remote

    @is_remote.setter
    def is_remote(self, is_remote):
        """Sets the is_remote of this JobDetailsTenantSpecificAdditionalFields.

        Whether it's a remote job.  # noqa: E501

        :param is_remote: The is_remote of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: float
        """

        self._is_remote = is_remote

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

        Worker type.  # noqa: E501

        :return: The worker_type of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._worker_type

    @worker_type.setter
    def worker_type(self, worker_type):
        """Sets the worker_type of this JobDetailsTenantSpecificAdditionalFields.

        Worker type.  # noqa: E501

        :param worker_type: The worker_type of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._worker_type = worker_type

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

        Store number of the job.  # noqa: E501

        :return: The store_number of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._store_number

    @store_number.setter
    def store_number(self, store_number):
        """Sets the store_number of this JobDetailsTenantSpecificAdditionalFields.

        Store number of the job.  # noqa: E501

        :param store_number: The store_number of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._store_number = store_number

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

        Job's profile ID.  # noqa: E501

        :return: The job_profile_id of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :rtype: str
        """
        return self._job_profile_id

    @job_profile_id.setter
    def job_profile_id(self, job_profile_id):
        """Sets the job_profile_id of this JobDetailsTenantSpecificAdditionalFields.

        Job's profile ID.  # noqa: E501

        :param job_profile_id: The job_profile_id of this JobDetailsTenantSpecificAdditionalFields.  # noqa: E501
        :type: str
        """

        self._job_profile_id = job_profile_id

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

        return self.__dict__ == other.__dict__

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