# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from nfldata.models.base_model_ import Model
from nfldata import util


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

    Do not edit the class manually.
    """

    def __init__(self, distance=None, kicker=None, made=None):  # noqa: E501
        """FieldGoal - a model defined in OpenAPI

        :param distance: The distance of this FieldGoal.  # noqa: E501
        :type distance: float
        :param kicker: The kicker of this FieldGoal.  # noqa: E501
        :type kicker: str
        :param made: The made of this FieldGoal.  # noqa: E501
        :type made: bool
        """
        self.openapi_types = {
            'distance': float,
            'kicker': str,
            'made': bool
        }

        self.attribute_map = {
            'distance': 'distance',
            'kicker': 'kicker',
            'made': 'made'
        }

        self._distance = distance
        self._kicker = kicker
        self._made = made

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

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

    @property
    def distance(self):
        """Gets the distance of this FieldGoal.

        Quantity of yards the kick was attempted  # noqa: E501

        :return: The distance of this FieldGoal.
        :rtype: float
        """
        return self._distance

    @distance.setter
    def distance(self, distance):
        """Sets the distance of this FieldGoal.

        Quantity of yards the kick was attempted  # noqa: E501

        :param distance: The distance of this FieldGoal.
        :type distance: float
        """
        if distance is None:
            raise ValueError("Invalid value for `distance`, must not be `None`")  # noqa: E501

        self._distance = distance

    @property
    def kicker(self):
        """Gets the kicker of this FieldGoal.

        The id of the kicker making the kick  # noqa: E501

        :return: The kicker of this FieldGoal.
        :rtype: str
        """
        return self._kicker

    @kicker.setter
    def kicker(self, kicker):
        """Sets the kicker of this FieldGoal.

        The id of the kicker making the kick  # noqa: E501

        :param kicker: The kicker of this FieldGoal.
        :type kicker: str
        """
        if kicker is None:
            raise ValueError("Invalid value for `kicker`, must not be `None`")  # noqa: E501

        self._kicker = kicker

    @property
    def made(self):
        """Gets the made of this FieldGoal.

        Whether or not the kick was made  # noqa: E501

        :return: The made of this FieldGoal.
        :rtype: bool
        """
        return self._made

    @made.setter
    def made(self, made):
        """Sets the made of this FieldGoal.

        Whether or not the kick was made  # noqa: E501

        :param made: The made of this FieldGoal.
        :type made: bool
        """
        if made is None:
            raise ValueError("Invalid value for `made`, must not be `None`")  # noqa: E501

        self._made = made
