11from src .repositories .game_repository import GameRepository
22from src .models .game import Game
33from src .services .team_service import TeamService
4- from src .utils .helpers import is_tournament_placeholder_team
54
65
76class GameService :
@@ -34,7 +33,6 @@ def create_game(data):
3433 opponent_id = data .get ("opponent_id" )
3534 if not TeamService .get_team_by_id (opponent_id ):
3635 raise ValueError (f"Opponent team with id { opponent_id } does not exist." )
37-
3836 game = Game (** data )
3937 GameRepository .insert (game )
4038 return game
@@ -71,16 +69,6 @@ def get_game_by_key_fields(city, date, gender, location, opponent_id, sport, sta
7169 city , date , gender , location , opponent_id , sport , state
7270 )
7371
74- @staticmethod
75- def get_game_by_tournament_key_fields (city , date , gender , location , sport , state ):
76- """
77- Retrieve a tournament game by location and date (excluding opponent_id).
78- This is used when we need to find a tournament game that might have a placeholder team.
79- """
80- return GameRepository .find_by_tournament_key_fields (
81- city , date , gender , location , sport , state
82- )
83-
8472 @staticmethod
8573 def get_games_by_sport (sport ):
8674 """
@@ -101,50 +89,3 @@ def get_games_by_sport_gender(sport, gender):
10189 Retrieves all game by its sport and gender.
10290 """
10391 return GameRepository .find_by_sport_gender (sport , gender )
104-
105- @staticmethod
106- def get_tournament_games_by_sport_gender (sport , gender , after_date = None ):
107- """
108- Find tournament games (with placeholder team names) for a specific sport and gender.
109- Optionally filter by games after a specific date.
110- """
111- games = GameRepository .find_games_by_sport_gender_after_date (sport , gender , after_date )
112- tournament_games = []
113-
114- for game in games :
115- team = TeamService .get_team_by_id (game .opponent_id )
116- if team and is_tournament_placeholder_team (team .name ):
117- tournament_games .append (game )
118-
119- return tournament_games
120-
121- @staticmethod
122- def delete_tournament_games_by_sport_gender (sport , gender , after_date = None ):
123- """
124- Delete tournament games (with placeholder team names) for a specific sport and gender.
125- Optionally filter by games after a specific date.
126- """
127- games = GameRepository .find_games_by_sport_gender_after_date (sport , gender , after_date )
128- tournament_game_ids = []
129-
130- for game in games :
131- team = TeamService .get_team_by_id (game .opponent_id )
132- if team and is_tournament_placeholder_team (team .name ):
133- tournament_game_ids .append (game .id )
134-
135- if tournament_game_ids :
136- return GameRepository .delete_games_by_ids (tournament_game_ids )
137- return 0
138-
139- @staticmethod
140- def handle_tournament_loss (sport , gender , loss_date ):
141- """
142- Handle when a Cornell team loses in a tournament by deleting future tournament games.
143-
144- Args:
145- sport (str): The sport of the team that lost
146- gender (str): The gender of the team that lost
147- loss_date (datetime): The date when the team lost
148- """
149- deleted_count = GameService .delete_tournament_games_by_sport_gender (sport , gender , loss_date )
150- return deleted_count
0 commit comments