# Generated by Django 4.2.27 on 2026-01-22 10:48 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ("course", "0001_initial"), ("account", "0001_initial"), ] operations = [ migrations.CreateModel( name="Quiz", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "title", models.CharField( help_text="Quiz Title", max_length=255, verbose_name="title" ), ), ( "description", models.CharField( blank=True, max_length=55, null=True, verbose_name="Description" ), ), ("each_question_timing", models.PositiveIntegerField()), ("status", models.BooleanField(default=True)), ( "lesson", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="quizzes", to="course.courselesson", verbose_name="lesson", ), ), ], options={ "verbose_name": "Quiz", "verbose_name_plural": "Quizzes", "ordering": ("-id",), }, ), migrations.CreateModel( name="QuizRankUser", fields=[], options={ "verbose_name": "Rank Quiz", "verbose_name_plural": "Rank Quizzes", "proxy": True, "indexes": [], "constraints": [], }, bases=("account.user",), ), migrations.CreateModel( name="QuizParticipant", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("started_at", models.DateTimeField(verbose_name="started at")), ("ended_at", models.DateTimeField(verbose_name="ended at")), ( "total_timing", models.PositiveIntegerField( help_text="Seconds take to finish the quiz" ), ), ("question_score", models.PositiveIntegerField()), ("timing_score", models.PositiveIntegerField()), ("total_score", models.PositiveIntegerField()), ( "quiz", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="participants", to="quiz.quiz", ), ), ( "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="uquizzes", to=settings.AUTH_USER_MODEL, verbose_name="user", ), ), ], options={ "verbose_name": "Participant", "verbose_name_plural": "Participants", "ordering": ("-id",), }, ), migrations.CreateModel( name="Question", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("question", models.CharField(max_length=255)), ("option1", models.CharField(max_length=255, verbose_name="option 1")), ("option2", models.CharField(max_length=255, verbose_name="option 2")), ("option3", models.CharField(max_length=255, verbose_name="option 3")), ("option4", models.CharField(max_length=255, verbose_name="option 4")), ( "correct_answer", models.PositiveSmallIntegerField( choices=[ (1, "Option 1"), (2, "Option 2"), (3, "Option 3"), (4, "Option 4"), ] ), ), ( "created_at", models.DateTimeField(auto_now_add=True, verbose_name="created at"), ), ("priority", models.IntegerField(blank=True, null=True)), ( "quiz", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="questions", to="quiz.quiz", verbose_name="quiz", ), ), ], options={ "verbose_name": "Question", "verbose_name_plural": "Questions", "ordering": ("-priority", "-id"), }, ), migrations.CreateModel( name="ParticipantAnswer", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ( "option_num", models.PositiveSmallIntegerField( choices=[ (1, "Option 1"), (2, "Option 2"), (3, "Option 3"), (4, "Option 4"), ], verbose_name="selected option", ), ), ("at_time", models.DateTimeField()), ( "answer_timing", models.PositiveSmallIntegerField( default=0, verbose_name="seconds take to answer" ), ), ( "participant", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="answers", to="quiz.quizparticipant", ), ), ( "question", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to="quiz.question" ), ), ], options={ "verbose_name": "User Quiz Answer", "verbose_name_plural": "User Quiz Answers", "ordering": ("-id",), }, ), ]