from dataclasses import dataclass from urllib.parse import urljoin from typing import List from domain.conferences import NFLConference from domain import divisions @dataclass class NFLTeam: team_name: str team_short_name: str city: str division: divisions.NFLDivision footballguys_short_name: str = "" url: str = "" injury_report_suffix: str = "/team/injury-report/" def __post_init__(self): self.footballguys_short_name = ( self.team_short_name if self.footballguys_short_name == "" else self.footballguys_short_name ) self.conference: NFLConference = self.division.conference self.injury_report_url = urljoin(self.url, self.injury_report_suffix) self.team_full_name = " ".join([self.city, self.team_name]) ALL_TEAMS.append(self) ALL_TEAMS: List[NFLTeam] = [] arizona_cardinals = NFLTeam( team_name="Cardinals", team_short_name="ARI", city="Arizona", division=divisions.NFCWest, url="https://www.azcardinals.com/", ) atlanta_falcons = NFLTeam( team_name="Falcons", team_short_name="ATL", city="Atlanta", division=divisions.NFCSouth, url="https://www.atlantafalcons.com/", ) baltimore_ravens = NFLTeam( team_name="Ravens", team_short_name="BAL", city="Baltimore", division=divisions.AFCNorth, url="https://www.baltimoreravens.com/", ) buffalo_bills = NFLTeam( team_name="Bills", team_short_name="BUF", city="Buffalo", division=divisions.AFCEast, url="https://www.buffalobills.com/", ) carolina_panthers = NFLTeam( team_name="Panthers", team_short_name="CAR", city="Carolina", division=divisions.NFCSouth, url="https://www.panthers.com/", ) chicago_bears = NFLTeam( team_name="Bears", team_short_name="CHI", city="Chicago", division=divisions.NFCNorth, url="https://www.chicagobears.com/", ) cincinnati_bengals = NFLTeam( team_name="Bengals", team_short_name="CIN", city="Cincinnati", division=divisions.AFCNorth, url="https://www.bengals.com/", ) cleveland_browns = NFLTeam( team_name="Browns", team_short_name="CLE", city="Cleveland", division=divisions.AFCNorth, url="https://www.clevelandbrowns.com/", ) dallas_cowboys = NFLTeam( team_name="Cowboys", team_short_name="DAL", city="Dallas", division=divisions.NFCEast, url="https://www.dallascowboys.com/", ) denver_broncos = NFLTeam( team_name="Broncos", team_short_name="DEN", city="Denver", division=divisions.AFCWest, url="https://www.denverbroncos.com/", ) detroit_lions = NFLTeam( team_name="Lions", team_short_name="DET", city="Detroit", division=divisions.NFCNorth, url="https://www.detroitlions.com/", ) green_bay_packers = NFLTeam( team_name="Packers", team_short_name="GB", city="Green Bay", division=divisions.NFCNorth, url="https://www.packers.com/", ) houston_texans = NFLTeam( team_name="Texans", team_short_name="HOU", city="Houston", division=divisions.AFCSouth, url="https://www.houstontexans.com/", ) indianapolis_colts = NFLTeam( city="Indianapolis", team_name="Colts", team_short_name="IND", division=divisions.AFCSouth, url="https://www.colts.com/", ) jacksonville_jaguars = NFLTeam( city="Jacksonville", team_name="Jaguars", team_short_name="JAX", division=divisions.AFCSouth, url="https://www.jaguars.com/", ) kansas_city_chiefs = NFLTeam( city="Kansas City", team_name="Chiefs", team_short_name="KC", division=divisions.AFCWest, url="https://www.chiefs.com/", ) las_vegas_raiders = NFLTeam( city="Las Vegas", team_name="Raiders", team_short_name="LV", division=divisions.AFCWest, url="https://www.raiders.com/", ) los_angeles_chargers = NFLTeam( city="Los Angeles", team_name="Chargers", team_short_name="LAC", division=divisions.AFCWest, url="https://www.chargers.com/", ) los_angeles_rams = NFLTeam( city="Los Angeles", team_name="Rams", team_short_name="LAR", division=divisions.NFCWest, url="https://www.therams.com/", ) miami_dolphins = NFLTeam( city="Miami", team_name="Dolphins", team_short_name="MIA", division=divisions.AFCEast, url="https://www.miamidolphins.com/", ) minnesota_vikings = NFLTeam( city="Minnesota", team_name="Vikings", team_short_name="MIN", division=divisions.NFCNorth, url="https://www.vikings.com/", ) new_england_patriots = NFLTeam( city="New England", team_name="Patriots", team_short_name="NE", division=divisions.AFCEast, url="https://www.patriots.com/", ) new_orleans_saints = NFLTeam( city="New Orleans", team_name="Saints", team_short_name="NO", division=divisions.NFCSouth, url="https://www.neworleanssaints.com/", ) new_york_giants = NFLTeam( city="New York", team_name="Giants", team_short_name="NYG", division=divisions.NFCEast, url="https://www.giants.com/", ) new_york_jets = NFLTeam( city="New York", team_name="Jets", team_short_name="NYJ", division=divisions.AFCEast, url="https://www.newyorkjets.com/", ) philadelphia_eagles = NFLTeam( city="Philadelphia", team_name="Eagles", team_short_name="PHI", division=divisions.NFCEast, url="https://www.philadelphiaeagles.com/", ) pittsburgh_steelers = NFLTeam( city="Pittsburgh", team_name="Steelers", team_short_name="PIT", division=divisions.AFCNorth, url="https://www.steelers.com/", ) san_francisco_49ers = NFLTeam( city="San Francisco", team_name="49ers", team_short_name="SF", division=divisions.NFCWest, url="https://www.49ers.com/", ) seattle_seahawks = NFLTeam( city="Seattle", team_name="Seahawks", team_short_name="SEA", division=divisions.NFCWest, url="https://www.seahawks.com/", ) tampa_bay_buccaneers = NFLTeam( city="Tampa Bay", team_name="Buccaneers", team_short_name="TB", division=divisions.NFCSouth, url="https://www.buccaneers.com/", ) tennessee_titans = NFLTeam( city="Tennessee", team_name="Titans", team_short_name="TEN", division=divisions.AFCSouth, url="https://www.tennesseetitans.com/", ) washington_football_team = NFLTeam( city="Washington", team_name="Commanders", team_short_name="WAS", division=divisions.NFCEast, url="https://www.commanders.com/", )