# Generated by Django 4.2.7 on 2026-05-15 11:09

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('core', '0002_initial'),
        ('users', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Assignment',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=255, verbose_name='Название')),
                ('description', models.TextField(blank=True, verbose_name='Описание задания')),
                ('deadline', models.DateField(verbose_name='Срок сдачи')),
                ('created_at', models.DateField(auto_now_add=True, verbose_name='Дата выдачи')),
                ('material_file', models.FileField(blank=True, null=True, upload_to='materials/%Y/%m/%d/', verbose_name='Материал (файл)')),
                ('material_link', models.URLField(blank=True, verbose_name='Материал (ссылка)')),
                ('material_text', models.TextField(blank=True, verbose_name='Материал (текст)')),
                ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='core.group', verbose_name='Группа')),
                ('subject', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.subject', verbose_name='Предмет')),
            ],
            options={
                'verbose_name': 'Задание',
                'verbose_name_plural': 'Задания',
            },
        ),
        migrations.CreateModel(
            name='AssignmentSubmission',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('status', models.CharField(choices=[('not_submitted', 'Не сдано'), ('submitted', 'Сдано на проверку'), ('graded', 'Проверено')], default='not_submitted', max_length=20, verbose_name='Статус')),
                ('submitted_at', models.DateField(blank=True, null=True, verbose_name='Дата сдачи')),
                ('answer_text', models.TextField(blank=True, verbose_name='Текстовый ответ')),
                ('answer_file', models.FileField(blank=True, null=True, upload_to='answers/%Y/%m/%d/', verbose_name='Файл с ответом')),
                ('grade', models.IntegerField(blank=True, null=True, verbose_name='Оценка')),
                ('grade_comment', models.TextField(blank=True, verbose_name='Комментарий преподавателя')),
                ('graded_at', models.DateField(blank=True, null=True, verbose_name='Дата проверки')),
                ('assignment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submissions', to='assignments.assignment', verbose_name='Задание')),
                ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.student', verbose_name='Студент')),
            ],
            options={
                'verbose_name': 'Сдача задания',
                'verbose_name_plural': 'Сдача заданий',
                'unique_together': {('assignment', 'student')},
            },
        ),
    ]
