# coding: utf-8

from __future__ import absolute_import
from .base_model_ import Model
from datetime import date, datetime
from typing import List, Dict
from ..util import deserialize_model


class Occurrence(Model):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self, occ_id: str=None, taxon: str=None, taxon_id: str=None, max_age: float=None, min_age: float=None, age_units: str=None, lat: float=None, lon: float=None, geog_coords: str=None):
        """
        Occurrence - a model defined in Swagger

        :param occ_id: The occ_id of this Occurrence.
        :type occ_id: str
        :param taxon: The taxon of this Occurrence.
        :type taxon: str
        :param taxon_id: The taxon_id of this Occurrence.
        :type taxon_id: str
        :param max_age: The max_age of this Occurrence.
        :type max_age: float
        :param min_age: The min_age of this Occurrence.
        :type min_age: float
        :param age_units: The age_units of this Occurrence.
        :type age_units: str
        :param lat: The lat of this Occurrence.
        :type lat: float
        :param lon: The lon of this Occurrence.
        :type lon: float
        :param geog_coords: The geog_coords of this Occurrence.
        :type geog_coords: str
        """
        self.swagger_types = {
            'occ_id': str,
            'taxon': str,
            'taxon_id': str,
            'max_age': float,
            'min_age': float,
            'age_units': str,
            'lat': float,
            'lon': float,
            'geog_coords': str
        }

        self.attribute_map = {
            'occ_id': 'occ_id',
            'taxon': 'taxon',
            'taxon_id': 'taxon_id',
            'max_age': 'max_age',
            'min_age': 'min_age',
            'age_units': 'age_units',
            'lat': 'lat',
            'lon': 'lon',
            'geog_coords': 'geog_coords'
        }

        self._occ_id = occ_id
        self._taxon = taxon
        self._taxon_id = taxon_id
        self._max_age = max_age
        self._min_age = min_age
        self._age_units = age_units
        self._lat = lat
        self._lon = lon
        self._geog_coords = geog_coords

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

        :param dikt: A dict.
        :type: dict
        :return: The occurrence of this Occurrence.
        :rtype: Occurrence