diff --git a/game/migrations/0018_musicgameanswer.py b/game/migrations/0018_musicgameanswer.py new file mode 100644 index 0000000..c1d8503 --- /dev/null +++ b/game/migrations/0018_musicgameanswer.py @@ -0,0 +1,60 @@ +# Generated by Django 5.2.3 on 2025-06-15 09:56 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("game", "0017_youtubecredentials_title"), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name="MusicGameAnswer", + fields=[ + ( + "id", + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("order", models.PositiveIntegerField()), + ( + "answer", + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to=settings.AUTH_USER_MODEL, + ), + ), + ( + "game", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, to="game.musikgame" + ), + ), + ( + "player", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + "ordering": ["order"], + "constraints": [ + models.UniqueConstraint( + fields=("game", "player", "order"), name="unique_answer" + ) + ], + }, + ), + ] diff --git a/game/models.py b/game/models.py index 1f8ce2f..99a5d6b 100644 --- a/game/models.py +++ b/game/models.py @@ -111,3 +111,20 @@ class MusicGameOrder(models.Model): models.UniqueConstraint(fields=("game", "order"), name="unique_order"), ] ordering = ["order"] + + +class MusicGameAnswer(models.Model): + game = models.ForeignKey(MusikGame, on_delete=models.CASCADE) + player = models.ForeignKey(User, on_delete=models.CASCADE) + order = models.PositiveIntegerField() + answer = models.ForeignKey( + User, on_delete=models.SET_NULL, null=True, related_name="+" + ) + + class Meta: + constraints = [ + models.UniqueConstraint( + fields=("game", "player", "order"), name="unique_answer" + ), + ] + ordering = ["order"]