# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server.models.entity_by_icd_references import EntityByIcdReferences  # noqa: F401,E501
from swagger_server import util


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

    Do not edit the class manually.
    """
    def __init__(self, _date: datetime=None, code_icd10: str=None, references: List[EntityByIcdReferences]=None):  # noqa: E501
        """EntityByIcd - a model defined in Swagger

        :param _date: The _date of this EntityByIcd.  # noqa: E501
        :type _date: datetime
        :param code_icd10: The code_icd10 of this EntityByIcd.  # noqa: E501
        :type code_icd10: str
        :param references: The references of this EntityByIcd.  # noqa: E501
        :type references: List[EntityByIcdReferences]
        """
        self.swagger_types = {
            '_date': datetime,
            'code_icd10': str,
            'references': List[EntityByIcdReferences]
        }

        self.attribute_map = {
            '_date': 'Date',
            'code_icd10': 'Code ICD10',
            'references': 'References'
        }
        self.__date = _date
        self._code_icd10 = code_icd10
        self._references = references

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

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

    @property
    def _date(self) -> datetime:
        """Gets the _date of this EntityByIcd.


        :return: The _date of this EntityByIcd.
        :rtype: datetime
        """
        return self.__date

    @_date.setter
    def _date(self, _date: datetime):
        """Sets the _date of this EntityByIcd.


        :param _date: The _date of this EntityByIcd.
        :type _date: datetime
        """

        self.__date = _date

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


        :return: The code_icd10 of this EntityByIcd.
        :rtype: str
        """
        return self._code_icd10

    @code_icd10.setter
    def code_icd10(self, code_icd10: str):
        """Sets the code_icd10 of this EntityByIcd.


        :param code_icd10: The code_icd10 of this EntityByIcd.
        :type code_icd10: str
        """

        self._code_icd10 = code_icd10

    @property
    def references(self) -> List[EntityByIcdReferences]:
        """Gets the references of this EntityByIcd.


        :return: The references of this EntityByIcd.
        :rtype: List[EntityByIcdReferences]
        """
        return self._references

    @references.setter
    def references(self, references: List[EntityByIcdReferences]):
        """Sets the references of this EntityByIcd.


        :param references: The references of this EntityByIcd.
        :type references: List[EntityByIcdReferences]
        """

        self._references = references
