From 9e6a1a6bfeb4ecd9dc863193464114768e1ad756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=A1=D1=83=D0=BC?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Sat, 1 Mar 2025 13:12:38 +0300 Subject: [PATCH] added migrations --- .../competition/migrations/0001_initial.py | 47 +++++++++++++++++ .../apps/review/migrations/0001_initial.py | 27 ++++++++++ .../apps/task/migrations/0001_initial.py | 51 +++++++++++++++++++ .../apps/user/migrations/0001_initial.py | 29 +++++++++++ 4 files changed, 154 insertions(+) create mode 100644 services/backend/apps/competition/migrations/0001_initial.py create mode 100644 services/backend/apps/review/migrations/0001_initial.py create mode 100644 services/backend/apps/task/migrations/0001_initial.py create mode 100644 services/backend/apps/user/migrations/0001_initial.py diff --git a/services/backend/apps/competition/migrations/0001_initial.py b/services/backend/apps/competition/migrations/0001_initial.py new file mode 100644 index 0000000..2699fe9 --- /dev/null +++ b/services/backend/apps/competition/migrations/0001_initial.py @@ -0,0 +1,47 @@ +# Generated by Django 5.1.6 on 2025-03-01 08:47 + +import django.db.models.deletion +import uuid +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('user', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Competition', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('title', models.CharField(max_length=100, verbose_name='Название')), + ('description', models.TextField(verbose_name='Описание')), + ('image_url', models.FileField(blank=True, null=True, upload_to='', verbose_name='Изображение соревнования')), + ('end_date', models.DateTimeField(blank=True, null=True, verbose_name='Дедлайн участия')), + ('start_date', models.DateTimeField(blank=True, null=True, verbose_name='Дедлайн участия')), + ('type', models.CharField(choices=[('solo', 'Solo')], max_length=10, verbose_name='Тип участия')), + ('participation_type', models.CharField(choices=[('edu', 'Edu'), ('competitive', 'Competitive')], max_length=11, verbose_name='Тип соревнования')), + ('participants', models.ManyToManyField(related_name='participants', to='user.user')), + ], + options={ + 'verbose_name': 'соревнование', + 'verbose_name_plural': 'соревнования', + }, + ), + migrations.CreateModel( + name='State', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('state', models.CharField(choices=[('not_started', 'Not Started'), ('started', 'Started'), ('finished', 'Finished')], max_length=11)), + ('competition', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='competition.competition')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.user')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/services/backend/apps/review/migrations/0001_initial.py b/services/backend/apps/review/migrations/0001_initial.py new file mode 100644 index 0000000..ceed39d --- /dev/null +++ b/services/backend/apps/review/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# Generated by Django 5.1.6 on 2025-03-01 08:47 + +import uuid +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Reviewer', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('name', models.CharField(max_length=100)), + ('surname', models.CharField(max_length=100)), + ('token', models.CharField(max_length=100)), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/services/backend/apps/task/migrations/0001_initial.py b/services/backend/apps/task/migrations/0001_initial.py new file mode 100644 index 0000000..5549424 --- /dev/null +++ b/services/backend/apps/task/migrations/0001_initial.py @@ -0,0 +1,51 @@ +# Generated by Django 5.1.6 on 2025-03-01 09:42 + +import apps.task.models +import django.db.models.deletion +import uuid +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('competition', '0001_initial'), + ('user', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='CompetitionTask', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('title', models.TextField(max_length=50, verbose_name='заголовок')), + ('description', models.TextField(max_length=300, verbose_name='описание')), + ('type', models.CharField(choices=[('input', 'Input'), ('checker', 'Checker'), ('review', 'Review')], max_length=8)), + ('correct_answer_file', models.FileField(upload_to=apps.task.models.CompetitionTask.answer_file_upload_to)), + ('answer_file_path', models.TextField()), + ('criteries', models.JSONField(blank=True, null=True)), + ('competition', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='competition.competition')), + ], + options={ + 'abstract': False, + }, + ), + migrations.CreateModel( + name='CompetetionTaskSumbission', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('status', models.CharField(choices=[('sent', 'Sent'), ('checking', 'Checking'), ('checked', 'Checked')], default='sent', max_length=8)), + ('content', models.FileField(upload_to=apps.task.models.CompetetionTaskSumbission.submission_content_upload_to)), + ('stdout', models.FileField(upload_to=apps.task.models.CompetetionTaskSumbission.submission_stdout_upload_to)), + ('result', models.JSONField(default={})), + ('timestamp', models.DateTimeField(auto_now_add=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='user.user')), + ('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='task.competitiontask')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/services/backend/apps/user/migrations/0001_initial.py b/services/backend/apps/user/migrations/0001_initial.py new file mode 100644 index 0000000..6fb8be0 --- /dev/null +++ b/services/backend/apps/user/migrations/0001_initial.py @@ -0,0 +1,29 @@ +# Generated by Django 5.1.6 on 2025-03-01 08:47 + +import uuid +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), + ('email', models.EmailField(max_length=254, unique=True, verbose_name='Почта')), + ('username', models.SlugField(unique=True, verbose_name='Юзернейм')), + ('password', models.TextField(verbose_name='Пароль')), + ('status', models.CharField(choices=[('student', 'Student'), ('metodist', 'Metodist')], default='student', max_length=10)), + ], + options={ + 'verbose_name': 'пользователь', + 'verbose_name_plural': 'пользователи', + }, + ), + ]