# Generated by Django 3.2.4 on 2021-07-28 11:03

from django.db import migrations, models
import django.db.models.deletion
import uuid
from wikiazma.storage_helper import public_storage


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('institute', '0005_institutestudent'),
        ('authenticate', '0007_auto_20210613_1512'),
    ]

    operations = [
        migrations.CreateModel(
            name='Exam',
            fields=[
                ('id', models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('entrance_type', models.CharField(db_index=True, max_length=20)),
                ('public_id', models.CharField(db_index=True, max_length=100, null=True)),
                ('name', models.CharField(db_index=True, max_length=100)),
                ('one_question_at_a_time', models.BooleanField(db_index=True, default=True)),
                ('reanswer', models.BooleanField(db_index=True, default=True)),
                ('automatic_result_reporting', models.BooleanField(db_index=True, default=False)),
                ('shuffle_questions', models.BooleanField(db_index=True, default=True)),
                ('shuffle_answers', models.BooleanField(db_index=True, default=True)),
                ('override_institute_name', models.CharField(blank=True, db_index=True, max_length=100, null=True)),
                ('override_institute_icon', models.ImageField(blank=True, null=True, storage=public_storage, upload_to='exam_rule/institute_icon')),
                ('generated_exam', models.JSONField(blank=True, null=True)),
                ('description', models.TextField(blank=True, max_length=3000, null=True)),
                ('exam_type', models.CharField(db_index=True, max_length=30)),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('modified_at', models.DateTimeField(auto_now=True, db_index=True)),
            ],
        ),
        migrations.CreateModel(
            name='ExamRule',
            fields=[
                ('id', models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('name', models.CharField(db_index=True, max_length=100)),
                ('rules', models.JSONField(blank=True, null=True)),
                ('one_question_at_a_time', models.BooleanField(db_index=True, default=True)),
                ('reanswer', models.BooleanField(db_index=True, default=True)),
                ('automatic_result_reporting', models.BooleanField(db_index=True, default=False)),
                ('shuffle_questions', models.BooleanField(db_index=True, default=True)),
                ('shuffle_answers', models.BooleanField(db_index=True, default=True)),
                ('override_institute_name', models.CharField(blank=True, db_index=True, max_length=100, null=True)),
                ('override_institute_icon', models.ImageField(blank=True, null=True, storage=public_storage, upload_to='exam_rule/institute_icon')),
                ('generated_exam', models.JSONField(blank=True, null=True)),
                ('description', models.TextField(blank=True, max_length=3000, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('modified_at', models.DateTimeField(auto_now=True, db_index=True)),
                ('institute', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='institute.institute')),
            ],
        ),
        migrations.CreateModel(
            name='ExamPage',
            fields=[
                ('id', models.UUIDField(db_index=True, default=uuid.uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
                ('entrance_token', models.CharField(db_index=True, max_length=60, unique=True)),
                ('entrance_ip', models.CharField(db_index=True, max_length=60)),
                ('generated_exam', models.JSONField(blank=True, null=True)),
                ('user_inputs', models.JSONField(blank=True, null=True)),
                ('corrections', models.JSONField(blank=True, null=True)),
                ('scores', models.JSONField(blank=True, default=None, null=True)),
                ('final_score', models.CharField(blank=True, max_length=10, null=True)),
                ('status', models.IntegerField(db_index=True, default=-1)),
                ('status_history', models.JSONField(default=list)),
                ('entrance_date', models.DateTimeField(db_index=True, null=True)),
                ('start_date', models.DateTimeField(db_index=True, null=True)),
                ('end_date', models.DateTimeField(db_index=True, null=True)),
                ('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
                ('modified_at', models.DateTimeField(auto_now=True, db_index=True)),
                ('exam', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='exam.exam')),
                ('institute_student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='institute.institutestudent')),
                ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='authenticate.user')),
            ],
        ),
        migrations.AddField(
            model_name='exam',
            name='exam_rule',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='exam.examrule'),
        ),
        migrations.AddField(
            model_name='exam',
            name='institute',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='institute.institute'),
        ),
    ]
