# Generated by Django 3.2 on 2022-02-04 11:22

import ckeditor_uploader.fields
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import uuid


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('manager', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Quiz',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('uuid', models.UUIDField(default=uuid.uuid4, verbose_name='آیدی یونیک')),
                ('name', models.CharField(max_length=120, verbose_name='نام آزمون')),
                ('topic', models.CharField(blank=True, max_length=120, null=True, verbose_name='موضوع آزمون')),
                ('number_of_question', models.IntegerField(blank=True, null=True, verbose_name='تعداد سوالات')),
                ('time', models.IntegerField(help_text='بر اساس (دقیقه)', verbose_name='زمان آزمون')),
                ('show_quiz', models.BooleanField(default=False, verbose_name='نمایش سوال ها در صفحات جدا')),
                ('required_score_to_pass', models.IntegerField(blank=True, help_text='نمره برای قبولی بر اساس (درصد)', null=True, verbose_name='نمره برای قبولی')),
                ('difficulty', models.CharField(choices=[('ساده', 'ساده'), ('متوسط', 'متوسط'), ('سخت', 'سخت')], max_length=10, verbose_name='سختی آزمون')),
                ('active', models.BooleanField(default=False, verbose_name='فعال / غیرفعال')),
                ('created', models.DateTimeField(default=django.utils.timezone.now, verbose_name='زمان ساخت')),
                ('updated', models.DateTimeField(auto_now=True, verbose_name='آخرین بروزرسانی')),
                ('quiz_book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quiz_book', to='manager.books', verbose_name='درس آزمون')),
                ('quiz_class', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='quiz_classes', to='manager.classes', verbose_name='کلاس آزمون')),
                ('students', models.ManyToManyField(blank=True, limit_choices_to={'is_student': True}, related_name='quiz_student', to=settings.AUTH_USER_MODEL, verbose_name='کاربران')),
            ],
            options={
                'verbose_name': 'آزمون',
                'verbose_name_plural': '01. آزمون ها',
                'ordering': ('-created',),
            },
        ),
        migrations.CreateModel(
            name='QuizResult',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('data', models.JSONField(verbose_name='اطلاعات')),
                ('quiz', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='result_quiz', to='quiz.quiz', verbose_name='نتیجه آزمون')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='result_user', to=settings.AUTH_USER_MODEL, verbose_name='نتیجه برای کاربر')),
            ],
            options={
                'verbose_name': 'نتیجه',
                'verbose_name_plural': '4. نتایج آزمون',
            },
        ),
        migrations.CreateModel(
            name='QuizQuestion',
            fields=[
                ('id', models.BigIntegerField(primary_key=True, serialize=False, unique=True)),
                ('text', ckeditor_uploader.fields.RichTextUploadingField(max_length=120, verbose_name='عنوان سوال')),
                ('question_type', models.CharField(choices=[('چهار گزینه ای', 'چهار گزینه ای'), ('تشریحی', 'تشریحی')], default='چهار گزینه ای', max_length=20, verbose_name='نوع سوال')),
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='زمان ساخت')),
                ('quiz', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='question_quiz', to='quiz.quiz', verbose_name='آزمون سوال')),
            ],
            options={
                'verbose_name': 'سوال',
                'verbose_name_plural': '02. سوال های آزمون',
            },
        ),
        migrations.CreateModel(
            name='QuizMultipleAnswers',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('text', models.CharField(max_length=120, verbose_name='عنوان پاسخ')),
                ('correct', models.BooleanField(default=False, verbose_name='پاسخ درست')),
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='زمان ساخت')),
                ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answer_multi_question', to='quiz.quizquestion', verbose_name='سوال پاسخ')),
            ],
            options={
                'verbose_name': 'پاسخ',
                'verbose_name_plural': '03. پاسخ های آزمون چهار گزینه ای',
            },
        ),
        migrations.CreateModel(
            name='QuizDescAnswers',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('text', models.TextField(verbose_name='متن')),
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='زمان ساخت')),
                ('question', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='answer_desc_question', to='quiz.quizquestion', verbose_name='سوال پاسخ')),
            ],
            options={
                'verbose_name': 'پاسخ',
                'verbose_name_plural': '04. پاسخ های آزمون تشریحی',
            },
        ),
    ]
