# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from com_csaa_claims_ai_assignment.models.base_model_ import Model
from com_csaa_claims_ai_assignment import util


class Claimant(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, public_id=None, driver_insured_relation=None, injured=None, is_employee=None, occupation=None, sub_type=None, tax_status=None):  # noqa: E501
        """Claimant - a model defined in OpenAPI

        :param public_id: The public_id of this Claimant.  # noqa: E501
        :type public_id: str
        :param driver_insured_relation: The driver_insured_relation of this Claimant.  # noqa: E501
        :type driver_insured_relation: str
        :param injured: The injured of this Claimant.  # noqa: E501
        :type injured: str
        :param is_employee: The is_employee of this Claimant.  # noqa: E501
        :type is_employee: str
        :param occupation: The occupation of this Claimant.  # noqa: E501
        :type occupation: str
        :param sub_type: The sub_type of this Claimant.  # noqa: E501
        :type sub_type: str
        :param tax_status: The tax_status of this Claimant.  # noqa: E501
        :type tax_status: str
        """
        self.openapi_types = {
            'public_id': str,
            'driver_insured_relation': str,
            'injured': str,
            'is_employee': str,
            'occupation': str,
            'sub_type': str,
            'tax_status': str
        }

        self.attribute_map = {
            'public_id': 'publicId',
            'driver_insured_relation': 'driverInsuredRelation',
            'injured': 'injured',
            'is_employee': 'isEmployee',
            'occupation': 'occupation',
            'sub_type': 'subType',
            'tax_status': 'taxStatus'
        }

        self._public_id = public_id
        self._driver_insured_relation = driver_insured_relation
        self._injured = injured
        self._is_employee = is_employee
        self._occupation = occupation
        self._sub_type = sub_type
        self._tax_status = tax_status

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

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

    @property
    def public_id(self):
        """Gets the public_id of this Claimant.


        :return: The public_id of this Claimant.
        :rtype: str
        """
        return self._public_id

    @public_id.setter
    def public_id(self, public_id):
        """Sets the public_id of this Claimant.


        :param public_id: The public_id of this Claimant.
        :type public_id: str
        """

        self._public_id = public_id

    @property
    def driver_insured_relation(self):
        """Gets the driver_insured_relation of this Claimant.


        :return: The driver_insured_relation of this Claimant.
        :rtype: str
        """
        return self._driver_insured_relation

    @driver_insured_relation.setter
    def driver_insured_relation(self, driver_insured_relation):
        """Sets the driver_insured_relation of this Claimant.


        :param driver_insured_relation: The driver_insured_relation of this Claimant.
        :type driver_insured_relation: str
        """

        self._driver_insured_relation = driver_insured_relation

    @property
    def injured(self):
        """Gets the injured of this Claimant.


        :return: The injured of this Claimant.
        :rtype: str
        """
        return self._injured

    @injured.setter
    def injured(self, injured):
        """Sets the injured of this Claimant.


        :param injured: The injured of this Claimant.
        :type injured: str
        """

        self._injured = injured

    @property
    def is_employee(self):
        """Gets the is_employee of this Claimant.


        :return: The is_employee of this Claimant.
        :rtype: str
        """
        return self._is_employee

    @is_employee.setter
    def is_employee(self, is_employee):
        """Sets the is_employee of this Claimant.


        :param is_employee: The is_employee of this Claimant.
        :type is_employee: str
        """

        self._is_employee = is_employee

    @property
    def occupation(self):
        """Gets the occupation of this Claimant.


        :return: The occupation of this Claimant.
        :rtype: str
        """
        return self._occupation

    @occupation.setter
    def occupation(self, occupation):
        """Sets the occupation of this Claimant.


        :param occupation: The occupation of this Claimant.
        :type occupation: str
        """

        self._occupation = occupation

    @property
    def sub_type(self):
        """Gets the sub_type of this Claimant.


        :return: The sub_type of this Claimant.
        :rtype: str
        """
        return self._sub_type

    @sub_type.setter
    def sub_type(self, sub_type):
        """Sets the sub_type of this Claimant.


        :param sub_type: The sub_type of this Claimant.
        :type sub_type: str
        """

        self._sub_type = sub_type

    @property
    def tax_status(self):
        """Gets the tax_status of this Claimant.


        :return: The tax_status of this Claimant.
        :rtype: str
        """
        return self._tax_status

    @tax_status.setter
    def tax_status(self, tax_status):
        """Sets the tax_status of this Claimant.


        :param tax_status: The tax_status of this Claimant.
        :type tax_status: str
        """

        self._tax_status = tax_status
