# Path: nba_data/data/injury_details.py
# class InjuryDetails:
#     def __init__(self, is_injured, status, affected_area, detail, side):
#         self.is_injured = is_injured
#         self.status = status
#         self.affected_area = affected_area
#         self.detail = detail
#         self.side = side
# 
# class Status(Enum):
#     out = 'Out'
#     game_time_decision = 'Game Time Decision'
#     healthy = 'Healthy'
# 
#     @staticmethod
#     def from_value(value):
#         return status_mapping.get(value)
# 
# Path: nba_data/data/player_news_item.py
# class PlayerNewsItem:
#     def __init__(self, caption, description, published_at, source_update_id, source_id, source_player_id,
#                  first_name, last_name, position, team, priority, headline, injury):
#         self.caption = caption
#         self.description = description
#         self.published_at = published_at
#         self.source_update_id = source_update_id
#         self.source_id = source_id
#         self.source_player_id = source_player_id
#         self.first_name = first_name
#         self.last_name = last_name
#         self.position = position
#         self.team = team
#         self.priority = priority
#         self.headline = headline
#         self.injury = injury
# 
# Path: nba_data/data/position.py
# class Position(Enum):
#     guard = "GUARD"
#     guard_forward = "GUARD-FORWARD"
#     forward_guard = "FORWARD-GUARD"
#     forward = "FORWARD"
#     center = "CENTER"
#     forward_center = "FORWARD-CENTER"
# 
#     @staticmethod
#     def get_position_from_abbreviation(abbreviation):
#         return abbreviation_to_position_map.get(abbreviation.upper())
# 
#     @staticmethod
#     def get_position_from_name(name):
#         return name_to_position_map.get(name.upper())
# 
# Path: nba_data/data/team.py
# class Team(BaseQueryParameter, Enum):
#     atlanta_hawks = "Atlanta Hawks"
#     boston_celtics = "Boston Celtics"
#     brooklyn_nets = "Brooklyn Nets"
#     charlotte_hornets = "Charlotte Hornets"
#     chicago_bulls = "Chicago Bulls"
#     cleveland_cavaliers = "Cleveland Cavaliers"
#     dallas_mavericks = "Dallas Mavericks"
#     denver_nuggets = "Denver Nuggets"
#     detroit_pistons = "Detroit Pistons"
#     golden_state_warriors = "Golden State Warriors"
#     houston_rockets = "Houston Rockets"
#     indiana_pacers = "Indiana Pacers"
#     los_angeles_clippers = "Los Angeles Clippers"
#     los_angeles_lakers = "Los Angeles Lakers"
#     memphis_grizzlies = "Memphis Grizzlies"
#     miami_heat = "Miami Heat"
#     milwaukee_bucks = "Milwaukee Bucks"
#     minnesota_timberwolves = "Minnesota Timberwolves"
#     new_orleans_pelicans = "New Orleans Pelicans"
#     new_york_knicks = "New York Knicks"
#     oklahoma_city_thunder = "Oklahoma City Thunder"
#     orlando_magic = "Orlando Magic"
#     philadelphia_76ers = "Philadelphia 76ers"
#     phoenix_suns = "Phoenix Suns"
#     portland_trail_blazers = "Portland Trail Blazers"
#     sacramento_kings = "Sacramento Kings"
#     san_antonio_spurs = "San Antonio Spurs"
#     toronto_raptors = "Toronto Raptors"
#     utah_jazz = "Utah Jazz"
#     washington_wizards = "Washington Wizards"
# 
#     @staticmethod
#     def get_query_parameter_name():
#         return "TeamId"
# 
#     @staticmethod
#     def get_team_by_id(team_id):
#         assert isinstance(team_id, int)
# 
#         return team_id_map.get(team_id)
# 
#     @staticmethod
#     def get_id(team):
#         assert isinstance(team, Team)
# 
#         return team_to_id_map.get(team)
# 
#     @staticmethod
#     def get_team_by_abbreviation(abbreviation):
#         assert isinstance(abbreviation, basestring)
# 
#         team = team_abbreviation_map.get(abbreviation.upper())
# 
#         if team is None:
#             raise ValueError('Unknown team abbreviation: %s', abbreviation)
# 
#         return team_abbreviation_map.get(abbreviation.upper())
# 
#     @staticmethod
#     def get_team_by_name(name):
#         assert isinstance(name, basestring)
# 
#         team = team_name_map.get(name)
# 
#         if team is None:
#             raise ValueError('Unknown team name: %s', name)
# 
#         return team


import datetime
from pytz import timezone, utc
from nba_data.data.injury_details import InjuryDetails, Status
from nba_data.data.player_news_item import PlayerNewsItem
from nba_data.data.position import Position
from nba_data.data.team import Team



class RotoWirePlayerNewsItemDeserializer:

    def __init__(self):
        pass

    caption_field_name = 'ListItemCaption'
    description_field_name = 'ListItemDescription'
    list_item_publish_date_field_name = 'ListItemPubDate'
    last_updated_field_name = 'lastUpdate'
    update_id_field_name = 'UpdateId'
    roto_id_field_name = 'RotoId'
    player_id_field_name = 'PlayerID'
    first_name_field_name = 'FirstName'
    last_name_field_name = 'LastName'
    position_abbreviation_field_name = 'Position'

# Path: nba_data/data/injury_details.py
# class InjuryDetails:
#     def __init__(self, is_injured, status, affected_area, detail, side):
#         self.is_injured = is_injured
#         self.status = status
#         self.affected_area = affected_area
#         self.detail = detail
#         self.side = side
# 
# class Status(Enum):
#     out = 'Out'
#     game_time_decision = 'Game Time Decision'
#     healthy = 'Healthy'
# 
#     @staticmethod
#     def from_value(value):
#         return status_mapping.get(value)
# 
# Path: nba_data/data/player_news_item.py
# class PlayerNewsItem:
#     def __init__(self, caption, description, published_at, source_update_id, source_id, source_player_id,
#                  first_name, last_name, position, team, priority, headline, injury):
#         self.caption = caption
#         self.description = description
#         self.published_at = published_at
#         self.source_update_id = source_update_id
#         self.source_id = source_id
#         self.source_player_id = source_player_id
#         self.first_name = first_name
#         self.last_name = last_name
#         self.position = position
#         self.team = team
#         self.priority = priority
#         self.headline = headline
#         self.injury = injury
# 
# Path: nba_data/data/position.py
# class Position(Enum):
#     guard = "GUARD"
#     guard_forward = "GUARD-FORWARD"
#     forward_guard = "FORWARD-GUARD"
#     forward = "FORWARD"
#     center = "CENTER"
#     forward_center = "FORWARD-CENTER"
# 
#     @staticmethod
#     def get_position_from_abbreviation(abbreviation):
#         return abbreviation_to_position_map.get(abbreviation.upper())
# 
#     @staticmethod
#     def get_position_from_name(name):
#         return name_to_position_map.get(name.upper())
# 
# Path: nba_data/data/team.py
# class Team(BaseQueryParameter, Enum):
#     atlanta_hawks = "Atlanta Hawks"
#     boston_celtics = "Boston Celtics"
#     brooklyn_nets = "Brooklyn Nets"
#     charlotte_hornets = "Charlotte Hornets"
#     chicago_bulls = "Chicago Bulls"
#     cleveland_cavaliers = "Cleveland Cavaliers"
#     dallas_mavericks = "Dallas Mavericks"
#     denver_nuggets = "Denver Nuggets"
#     detroit_pistons = "Detroit Pistons"
#     golden_state_warriors = "Golden State Warriors"
#     houston_rockets = "Houston Rockets"
#     indiana_pacers = "Indiana Pacers"
#     los_angeles_clippers = "Los Angeles Clippers"
#     los_angeles_lakers = "Los Angeles Lakers"
#     memphis_grizzlies = "Memphis Grizzlies"
#     miami_heat = "Miami Heat"
#     milwaukee_bucks = "Milwaukee Bucks"
#     minnesota_timberwolves = "Minnesota Timberwolves"
#     new_orleans_pelicans = "New Orleans Pelicans"
#     new_york_knicks = "New York Knicks"
#     oklahoma_city_thunder = "Oklahoma City Thunder"
#     orlando_magic = "Orlando Magic"
#     philadelphia_76ers = "Philadelphia 76ers"
#     phoenix_suns = "Phoenix Suns"
#     portland_trail_blazers = "Portland Trail Blazers"
#     sacramento_kings = "Sacramento Kings"
#     san_antonio_spurs = "San Antonio Spurs"
#     toronto_raptors = "Toronto Raptors"
#     utah_jazz = "Utah Jazz"
#     washington_wizards = "Washington Wizards"
# 
#     @staticmethod
#     def get_query_parameter_name():
#         return "TeamId"
# 
#     @staticmethod
#     def get_team_by_id(team_id):
#         assert isinstance(team_id, int)
# 
#         return team_id_map.get(team_id)
# 
#     @staticmethod
#     def get_id(team):
#         assert isinstance(team, Team)
# 
#         return team_to_id_map.get(team)
# 
#     @staticmethod
#     def get_team_by_abbreviation(abbreviation):
#         assert isinstance(abbreviation, basestring)
# 
#         team = team_abbreviation_map.get(abbreviation.upper())
# 
#         if team is None:
#             raise ValueError('Unknown team abbreviation: %s', abbreviation)
# 
#         return team_abbreviation_map.get(abbreviation.upper())
# 
#     @staticmethod
#     def get_team_by_name(name):
#         assert isinstance(name, basestring)
# 
#         team = team_name_map.get(name)
# 
#         if team is None:
#             raise ValueError('Unknown team name: %s', name)
# 
#         return team


# Path: nba_data/deserializers/roto_wire/player_news_item.py
import datetime
from pytz import timezone, utc
from nba_data.data.injury_details import InjuryDetails, Status
from nba_data.data.player_news_item import PlayerNewsItem
from nba_data.data.position import Position
from nba_data.data.team import Team




class RotoWirePlayerNewsItemDeserializer:

    def __init__(self):
        pass

    caption_field_name = 'ListItemCaption'
    description_field_name = 'ListItemDescription'
    list_item_publish_date_field_name = 'ListItemPubDate'
    last_updated_field_name = 'lastUpdate'
    update_id_field_name = 'UpdateId'
    roto_id_field_name = 'RotoId'
    player_id_field_name = 'PlayerID'
    first_name_field_name = 'FirstName'
    last_name_field_name = 'LastName'
    position_abbreviation_field_name = 'Position'

    team_abbreviation_field_name = 'Team'