diff --git a/backend/tournaments/migrations/0006_game_pool.py b/backend/tournaments/migrations/0006_game_pool.py new file mode 100644 index 0000000..2e61927 --- /dev/null +++ b/backend/tournaments/migrations/0006_game_pool.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.4 on 2025-12-23 06:21 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tournaments', '0005_alter_team_options_remove_team_seed'), + ] + + operations = [ + migrations.AddField( + model_name='game', + name='pool', + field=models.CharField(blank=True, help_text='Pool this game belongs to', max_length=10), + ), + ] diff --git a/backend/tournaments/models.py b/backend/tournaments/models.py index 04f1110..390f847 100644 --- a/backend/tournaments/models.py +++ b/backend/tournaments/models.py @@ -220,6 +220,9 @@ class Game(models.Model): team1 = models.ForeignKey(Team, on_delete=models.CASCADE, related_name='games_as_team1') team2 = models.ForeignKey(Team, on_delete=models.CASCADE, related_name='games_as_team2') + # Pool assignment (set at game creation, doesn't change with team reassignments) + pool = models.CharField(max_length=10, blank=True, help_text="Pool this game belongs to") + # Scores (set by MODAQ) team1_score = models.IntegerField(default=0) team2_score = models.IntegerField(default=0) diff --git a/backend/tournaments/serializers.py b/backend/tournaments/serializers.py index b27a0a7..ccba54a 100644 --- a/backend/tournaments/serializers.py +++ b/backend/tournaments/serializers.py @@ -114,7 +114,6 @@ class GameSerializer(serializers.ModelSerializer): round_number = serializers.IntegerField(source='round.round_number', read_only=True) room_name = serializers.CharField(source='room.name', read_only=True) winner_name = serializers.SerializerMethodField() - pool = serializers.SerializerMethodField() class Meta: model = Game @@ -129,8 +128,3 @@ class Meta: def get_winner_name(self, obj): winner = obj.winner return winner.name if winner else None - - def get_pool(self, obj): - """Get the pool this game belongs to (from either team).""" - # Both teams should be in the same pool for a valid game - return obj.team1.pool if obj.team1.pool else obj.team2.pool diff --git a/backend/tournaments/views.py b/backend/tournaments/views.py index 2c5772f..7c82884 100644 --- a/backend/tournaments/views.py +++ b/backend/tournaments/views.py @@ -202,7 +202,8 @@ def generate_schedule(self, request, pk=None): round=round_obj, room=room, team1=team1, - team2=team2 + team2=team2, + pool=pool_name # Store the pool assignment at game creation ) generated_games.append({