# coding: utf-8

"""
    NFL v3 Stats

    NFL rosters, player stats, team stats, and fantasy stats API.  # noqa: E501

    OpenAPI spec version: 1.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

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

    Do not edit the class manually.
    """
    """
    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 = {
        'player_game_id': 'int',
        'player_id': 'int',
        'short_name': 'str',
        'name': 'str',
        'team': 'str',
        'number': 'int',
        'position': 'str',
        'position_category': 'str',
        'fantasy_position': 'str',
        'fantasy_points': 'float',
        'updated': 'str',
        'tackles': 'int',
        'solo_tackles': 'int',
        'assisted_tackles': 'int',
        'sacks': 'float',
        'sack_yards': 'int',
        'fumbles_forced': 'int',
        'fumbles_recovered': 'int',
        'passes_defended': 'int',
        'interceptions': 'int',
        'interception_return_yards': 'int',
        'interception_return_touchdowns': 'int',
        'tackles_for_loss': 'int',
        'quarterback_hits': 'int',
        'fumble_return_touchdowns': 'int',
        'safeties': 'int'
    }

    attribute_map = {
        'player_game_id': 'PlayerGameID',
        'player_id': 'PlayerID',
        'short_name': 'ShortName',
        'name': 'Name',
        'team': 'Team',
        'number': 'Number',
        'position': 'Position',
        'position_category': 'PositionCategory',
        'fantasy_position': 'FantasyPosition',
        'fantasy_points': 'FantasyPoints',
        'updated': 'Updated',
        'tackles': 'Tackles',
        'solo_tackles': 'SoloTackles',
        'assisted_tackles': 'AssistedTackles',
        'sacks': 'Sacks',
        'sack_yards': 'SackYards',
        'fumbles_forced': 'FumblesForced',
        'fumbles_recovered': 'FumblesRecovered',
        'passes_defended': 'PassesDefended',
        'interceptions': 'Interceptions',
        'interception_return_yards': 'InterceptionReturnYards',
        'interception_return_touchdowns': 'InterceptionReturnTouchdowns',
        'tackles_for_loss': 'TacklesForLoss',
        'quarterback_hits': 'QuarterbackHits',
        'fumble_return_touchdowns': 'FumbleReturnTouchdowns',
        'safeties': 'Safeties'
    }

    def __init__(self, player_game_id=None, player_id=None, short_name=None, name=None, team=None, number=None, position=None, position_category=None, fantasy_position=None, fantasy_points=None, updated=None, tackles=None, solo_tackles=None, assisted_tackles=None, sacks=None, sack_yards=None, fumbles_forced=None, fumbles_recovered=None, passes_defended=None, interceptions=None, interception_return_yards=None, interception_return_touchdowns=None, tackles_for_loss=None, quarterback_hits=None, fumble_return_touchdowns=None, safeties=None):  # noqa: E501
        """NflStatsPlayerDefense - a model defined in Swagger"""  # noqa: E501
        self._player_game_id = None
        self._player_id = None
        self._short_name = None
        self._name = None
        self._team = None
        self._number = None
        self._position = None
        self._position_category = None
        self._fantasy_position = None
        self._fantasy_points = None
        self._updated = None
        self._tackles = None
        self._solo_tackles = None
        self._assisted_tackles = None
        self._sacks = None
        self._sack_yards = None
        self._fumbles_forced = None
        self._fumbles_recovered = None
        self._passes_defended = None
        self._interceptions = None
        self._interception_return_yards = None
        self._interception_return_touchdowns = None
        self._tackles_for_loss = None
        self._quarterback_hits = None
        self._fumble_return_touchdowns = None
        self._safeties = None
        self.discriminator = None
        if player_game_id is not None:
            self.player_game_id = player_game_id
        if player_id is not None:
            self.player_id = player_id
        if short_name is not None:
            self.short_name = short_name
        if name is not None:
            self.name = name
        if team is not None:
            self.team = team
        if number is not None:
            self.number = number
        if position is not None:
            self.position = position
        if position_category is not None:
            self.position_category = position_category
        if fantasy_position is not None:
            self.fantasy_position = fantasy_position
        if fantasy_points is not None:
            self.fantasy_points = fantasy_points
        if updated is not None:
            self.updated = updated
        if tackles is not None:
            self.tackles = tackles
        if solo_tackles is not None:
            self.solo_tackles = solo_tackles
        if assisted_tackles is not None:
            self.assisted_tackles = assisted_tackles
        if sacks is not None:
            self.sacks = sacks
        if sack_yards is not None:
            self.sack_yards = sack_yards
        if fumbles_forced is not None:
            self.fumbles_forced = fumbles_forced
        if fumbles_recovered is not None:
            self.fumbles_recovered = fumbles_recovered
        if passes_defended is not None:
            self.passes_defended = passes_defended
        if interceptions is not None:
            self.interceptions = interceptions
        if interception_return_yards is not None:
            self.interception_return_yards = interception_return_yards
        if interception_return_touchdowns is not None:
            self.interception_return_touchdowns = interception_return_touchdowns
        if tackles_for_loss is not None:
            self.tackles_for_loss = tackles_for_loss
        if quarterback_hits is not None:
            self.quarterback_hits = quarterback_hits
        if fumble_return_touchdowns is not None:
            self.fumble_return_touchdowns = fumble_return_touchdowns
        if safeties is not None:
            self.safeties = safeties

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


        :return: The player_game_id of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._player_game_id

    @player_game_id.setter
    def player_game_id(self, player_game_id):
        """Sets the player_game_id of this NflStatsPlayerDefense.


        :param player_game_id: The player_game_id of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._player_game_id = player_game_id

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


        :return: The player_id of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._player_id

    @player_id.setter
    def player_id(self, player_id):
        """Sets the player_id of this NflStatsPlayerDefense.


        :param player_id: The player_id of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._player_id = player_id

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


        :return: The short_name of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: str
        """
        return self._short_name

    @short_name.setter
    def short_name(self, short_name):
        """Sets the short_name of this NflStatsPlayerDefense.


        :param short_name: The short_name of this NflStatsPlayerDefense.  # noqa: E501
        :type: str
        """

        self._short_name = short_name

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


        :return: The name of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this NflStatsPlayerDefense.


        :param name: The name of this NflStatsPlayerDefense.  # noqa: E501
        :type: str
        """

        self._name = name

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


        :return: The team of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: str
        """
        return self._team

    @team.setter
    def team(self, team):
        """Sets the team of this NflStatsPlayerDefense.


        :param team: The team of this NflStatsPlayerDefense.  # noqa: E501
        :type: str
        """

        self._team = team

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


        :return: The number of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._number

    @number.setter
    def number(self, number):
        """Sets the number of this NflStatsPlayerDefense.


        :param number: The number of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._number = number

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


        :return: The position of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: str
        """
        return self._position

    @position.setter
    def position(self, position):
        """Sets the position of this NflStatsPlayerDefense.


        :param position: The position of this NflStatsPlayerDefense.  # noqa: E501
        :type: str
        """

        self._position = position

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


        :return: The position_category of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: str
        """
        return self._position_category

    @position_category.setter
    def position_category(self, position_category):
        """Sets the position_category of this NflStatsPlayerDefense.


        :param position_category: The position_category of this NflStatsPlayerDefense.  # noqa: E501
        :type: str
        """

        self._position_category = position_category

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


        :return: The fantasy_position of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: str
        """
        return self._fantasy_position

    @fantasy_position.setter
    def fantasy_position(self, fantasy_position):
        """Sets the fantasy_position of this NflStatsPlayerDefense.


        :param fantasy_position: The fantasy_position of this NflStatsPlayerDefense.  # noqa: E501
        :type: str
        """

        self._fantasy_position = fantasy_position

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


        :return: The fantasy_points of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: float
        """
        return self._fantasy_points

    @fantasy_points.setter
    def fantasy_points(self, fantasy_points):
        """Sets the fantasy_points of this NflStatsPlayerDefense.


        :param fantasy_points: The fantasy_points of this NflStatsPlayerDefense.  # noqa: E501
        :type: float
        """

        self._fantasy_points = fantasy_points

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


        :return: The updated of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: str
        """
        return self._updated

    @updated.setter
    def updated(self, updated):
        """Sets the updated of this NflStatsPlayerDefense.


        :param updated: The updated of this NflStatsPlayerDefense.  # noqa: E501
        :type: str
        """

        self._updated = updated

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


        :return: The tackles of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._tackles

    @tackles.setter
    def tackles(self, tackles):
        """Sets the tackles of this NflStatsPlayerDefense.


        :param tackles: The tackles of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._tackles = tackles

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


        :return: The solo_tackles of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._solo_tackles

    @solo_tackles.setter
    def solo_tackles(self, solo_tackles):
        """Sets the solo_tackles of this NflStatsPlayerDefense.


        :param solo_tackles: The solo_tackles of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._solo_tackles = solo_tackles

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


        :return: The assisted_tackles of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._assisted_tackles

    @assisted_tackles.setter
    def assisted_tackles(self, assisted_tackles):
        """Sets the assisted_tackles of this NflStatsPlayerDefense.


        :param assisted_tackles: The assisted_tackles of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._assisted_tackles = assisted_tackles

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


        :return: The sacks of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: float
        """
        return self._sacks

    @sacks.setter
    def sacks(self, sacks):
        """Sets the sacks of this NflStatsPlayerDefense.


        :param sacks: The sacks of this NflStatsPlayerDefense.  # noqa: E501
        :type: float
        """

        self._sacks = sacks

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


        :return: The sack_yards of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._sack_yards

    @sack_yards.setter
    def sack_yards(self, sack_yards):
        """Sets the sack_yards of this NflStatsPlayerDefense.


        :param sack_yards: The sack_yards of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._sack_yards = sack_yards

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


        :return: The fumbles_forced of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._fumbles_forced

    @fumbles_forced.setter
    def fumbles_forced(self, fumbles_forced):
        """Sets the fumbles_forced of this NflStatsPlayerDefense.


        :param fumbles_forced: The fumbles_forced of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._fumbles_forced = fumbles_forced

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


        :return: The fumbles_recovered of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._fumbles_recovered

    @fumbles_recovered.setter
    def fumbles_recovered(self, fumbles_recovered):
        """Sets the fumbles_recovered of this NflStatsPlayerDefense.


        :param fumbles_recovered: The fumbles_recovered of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._fumbles_recovered = fumbles_recovered

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


        :return: The passes_defended of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._passes_defended

    @passes_defended.setter
    def passes_defended(self, passes_defended):
        """Sets the passes_defended of this NflStatsPlayerDefense.


        :param passes_defended: The passes_defended of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._passes_defended = passes_defended

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


        :return: The interceptions of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._interceptions

    @interceptions.setter
    def interceptions(self, interceptions):
        """Sets the interceptions of this NflStatsPlayerDefense.


        :param interceptions: The interceptions of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._interceptions = interceptions

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


        :return: The interception_return_yards of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._interception_return_yards

    @interception_return_yards.setter
    def interception_return_yards(self, interception_return_yards):
        """Sets the interception_return_yards of this NflStatsPlayerDefense.


        :param interception_return_yards: The interception_return_yards of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._interception_return_yards = interception_return_yards

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


        :return: The interception_return_touchdowns of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._interception_return_touchdowns

    @interception_return_touchdowns.setter
    def interception_return_touchdowns(self, interception_return_touchdowns):
        """Sets the interception_return_touchdowns of this NflStatsPlayerDefense.


        :param interception_return_touchdowns: The interception_return_touchdowns of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._interception_return_touchdowns = interception_return_touchdowns

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


        :return: The tackles_for_loss of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._tackles_for_loss

    @tackles_for_loss.setter
    def tackles_for_loss(self, tackles_for_loss):
        """Sets the tackles_for_loss of this NflStatsPlayerDefense.


        :param tackles_for_loss: The tackles_for_loss of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._tackles_for_loss = tackles_for_loss

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


        :return: The quarterback_hits of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._quarterback_hits

    @quarterback_hits.setter
    def quarterback_hits(self, quarterback_hits):
        """Sets the quarterback_hits of this NflStatsPlayerDefense.


        :param quarterback_hits: The quarterback_hits of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._quarterback_hits = quarterback_hits

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


        :return: The fumble_return_touchdowns of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._fumble_return_touchdowns

    @fumble_return_touchdowns.setter
    def fumble_return_touchdowns(self, fumble_return_touchdowns):
        """Sets the fumble_return_touchdowns of this NflStatsPlayerDefense.


        :param fumble_return_touchdowns: The fumble_return_touchdowns of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._fumble_return_touchdowns = fumble_return_touchdowns

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


        :return: The safeties of this NflStatsPlayerDefense.  # noqa: E501
        :rtype: int
        """
        return self._safeties

    @safeties.setter
    def safeties(self, safeties):
        """Sets the safeties of this NflStatsPlayerDefense.


        :param safeties: The safeties of this NflStatsPlayerDefense.  # noqa: E501
        :type: int
        """

        self._safeties = safeties

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

        return self.__dict__ == other.__dict__

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