# Generated by Django 2.2.28 on 2023-07-13 17:32

import django.db.models.deletion
from django.db import (
    migrations,
    models,
)

import edu_rdm_integration.utils
import educommon.django.db.mixins
import educommon.utils.date


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('uploader_client', '0001_initial'),
        ('function_tools', '0005_auto_20220724_0050'),
    ]

    operations = [
        migrations.CreateModel(
            name='CollectingDataStageStatus',
            fields=[
                ('title', models.TextField(verbose_name='расшифровка значения')),
                ('key', models.CharField(db_index=True, max_length=512, primary_key=True, serialize=False, verbose_name='ключ')),
                ('order_number', models.PositiveIntegerField(default=100000, verbose_name='Порядковый номер')),
            ],
            options={
                'verbose_name': 'Модель-перечисление статусов этапа сбора данных',
                'verbose_name_plural': 'Модели-перечисления статусов этапов сбора данных',
                'db_table': 'rdm_collecting_data_stage_status',
            },
        ),
        migrations.CreateModel(
            name='CollectingDataSubStageStatus',
            fields=[
                ('title', models.TextField(verbose_name='расшифровка значения')),
                ('key', models.CharField(db_index=True, max_length=512, primary_key=True, serialize=False, verbose_name='ключ')),
                ('order_number', models.PositiveIntegerField(default=100000, verbose_name='Порядковый номер')),
            ],
            options={
                'verbose_name': 'Модель-перечисление статусов подэтапа сбора данных',
                'verbose_name_plural': 'Модели-перечисления статусов подэтапов сбора данных',
                'db_table': 'rdm_collecting_data_sub_stage_status',
            },
        ),
        migrations.CreateModel(
            name='CollectingExportedDataStage',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('logs_period_started_at', models.DateTimeField(db_index=True, default=educommon.utils.date.get_today_min_datetime, verbose_name='Левая граница периода обрабатываемых логов')),
                ('logs_period_ended_at', models.DateTimeField(db_index=True, default=educommon.utils.date.get_today_max_datetime, verbose_name='Правая граница периода обрабатываемых логов')),
                ('started_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Время начала сбора данных')),
                ('ended_at', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Время завершения сбора данных')),
                ('manager', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='function_tools.Entity', verbose_name='Менеджер ранера Функции')),
                ('status', models.ForeignKey(default='CREATED', on_delete=django.db.models.deletion.PROTECT, to='edu_rdm_integration.CollectingDataStageStatus', verbose_name='Статус')),
            ],
            options={
                'verbose_name': 'Этап формирования данных для выгрузки',
                'verbose_name_plural': 'Этапы формирования данных для выгрузки',
                'db_table': 'rdm_collecting_exported_data_stage',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ExportingDataStage',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('period_started_at', models.DateTimeField(db_index=True, verbose_name='Левая граница периода выборки данных для выгрузки')),
                ('period_ended_at', models.DateTimeField(db_index=True, verbose_name='Правая граница периода выборки данных для выгрузки')),
                ('started_at', models.DateTimeField(auto_now_add=True, verbose_name='Время начала выгрузки данных')),
                ('ended_at', models.DateTimeField(blank=True, null=True, verbose_name='Время завершения выгрузки данных')),
                ('manager', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='function_tools.Entity', verbose_name='Менеджер ранера Функции')),
            ],
            options={
                'verbose_name': 'Этап формирования данных для выгрузки',
                'verbose_name_plural': 'Этапы формирования данных для выгрузки',
                'db_table': 'rdm_exporting_data_stage',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ExportingDataStageStatus',
            fields=[
                ('title', models.TextField(verbose_name='расшифровка значения')),
                ('key', models.CharField(db_index=True, max_length=512, primary_key=True, serialize=False, verbose_name='ключ')),
                ('order_number', models.PositiveIntegerField(default=100000, verbose_name='Порядковый номер')),
            ],
            options={
                'verbose_name': 'Модель-перечисление статусов этапа выгрузки данных',
                'verbose_name_plural': 'Модели-перечисления статусов этапов выгрузки данных',
                'db_table': 'rdm_exporting_data_stage_status',
            },
        ),
        migrations.CreateModel(
            name='ExportingDataSubStage',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('started_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Время начала сбора данных')),
                ('ended_at', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Время завершения сбора данных')),
                ('function', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='function_tools.Entity', verbose_name='Функция')),
                ('stage', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.ExportingDataStage', verbose_name='Этап выгрузки данных')),
            ],
            options={
                'verbose_name': 'Стадия выгрузки данных',
                'verbose_name_plural': 'Стадии выгрузки данных',
                'db_table': 'rdm_exporting_data_sub_stage',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ExportingDataSubStageAttachment',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('attachment', models.FileField(blank=True, max_length=512, null=True, upload_to=edu_rdm_integration.utils.get_exporting_data_stage_attachment_path, verbose_name='Сгенерированный файл')),
                ('operation', models.SmallIntegerField(choices=[(1, 'Создание'), (2, 'Изменение'), (3, 'Удаление')], verbose_name='Действие')),
                ('created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Дата создания')),
                ('modified', models.DateTimeField(auto_now=True, null=True, verbose_name='Дата изменения')),
                ('exporting_data_sub_stage', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.ExportingDataSubStage', verbose_name='Подэтап выгрузки данных')),
            ],
            options={
                'verbose_name': 'Сгенерированный файл для дальнейшей выгрузки в "Региональная витрина данных"',
                'verbose_name_plural': 'Сгенерированные файлы для дальнейшей выгрузки в "Региональная витрина данных"',
                'db_table': 'rdm_exporting_data_sub_stage_attachment',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
        migrations.CreateModel(
            name='ExportingDataSubStageStatus',
            fields=[
                ('title', models.TextField(verbose_name='расшифровка значения')),
                ('key', models.CharField(db_index=True, max_length=512, primary_key=True, serialize=False, verbose_name='ключ')),
                ('order_number', models.PositiveIntegerField(default=100000, verbose_name='Порядковый номер')),
            ],
            options={
                'verbose_name': 'Модель-перечисление статусов подэтапа выгрузки данных',
                'verbose_name_plural': 'Модели-перечисления статусов подэтапов выгрузки данных',
                'db_table': 'rdm_exporting_data_sub_stage_status',
            },
        ),
        migrations.CreateModel(
            name='ExportingDataSubStageUploaderClientLog',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('request_id', models.CharField(blank=True, max_length=100, verbose_name='Id запроса загрузки в витрину')),
                ('is_emulation', models.BooleanField(default=False, verbose_name='Включен режим эмуляции')),
                ('file_upload_status', models.SmallIntegerField(blank=True, choices=[(1, 'В процессе загрузки в витрину'), (2, 'Загрузка в витрину закончена'), (3, 'Ошибка загрузки в витрину')], null=True, verbose_name='Общий статус загрузки файла в витрину')),
                ('created', models.DateTimeField(auto_now_add=True, db_index=True, null=True, verbose_name='Дата создания')),
                ('modified', models.DateTimeField(auto_now=True, db_index=True, null=True, verbose_name='Дата изменения')),
                ('attachment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.ExportingDataSubStageAttachment', verbose_name='Прикрепленный файл')),
                ('entry', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='uploader_client_log', to='uploader_client.Entry', verbose_name='Лог запроса и ответа')),
                ('sub_stage', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.ExportingDataSubStage', verbose_name='Подэтап выгрузки данных')),
            ],
            options={
                'verbose_name': 'Лог запроса подэтапа выгрузки данных',
                'verbose_name_plural': 'Лог запроса подэтапа выгрузки данных',
                'db_table': 'rdm_exporting_data_sub_stage_uploader_client_log',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
        migrations.CreateModel(
            name='RegionalDataMartEntityEnum',
            fields=[
                ('title', models.TextField(verbose_name='расшифровка значения')),
                ('key', models.CharField(db_index=True, max_length=512, primary_key=True, serialize=False, verbose_name='ключ')),
                ('order_number', models.PositiveIntegerField(default=100000, verbose_name='Порядковый номер')),
            ],
            options={
                'verbose_name': 'Модель-перечисление сущностей "Региональной витрины данных"',
                'verbose_name_plural': 'Модели-перечисления сущностей "Региональной витрины данных"',
                'db_table': 'rdm_entity',
            },
        ),
        migrations.CreateModel(
            name='RegionalDataMartModelEnum',
            fields=[
                ('title', models.TextField(verbose_name='расшифровка значения')),
                ('key', models.CharField(db_index=True, max_length=512, primary_key=True, serialize=False, verbose_name='ключ')),
                ('order_number', models.PositiveIntegerField(default=100000, verbose_name='Порядковый номер')),
            ],
            options={
                'verbose_name': 'Модель-перечисление моделей "Региональной витрины данных"',
                'verbose_name_plural': 'Модели-перечисления моделей "Региональной витрины данных"',
                'db_table': 'rdm_model',
            },
        ),
        migrations.CreateModel(
            name='UploadStatus',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('code', models.SmallIntegerField(blank=True, null=True, verbose_name='Код статуса загрузки в витрину')),
                ('description', models.CharField(max_length=100, verbose_name='Описание статуса загрузки в витрину')),
            ],
            options={
                'verbose_name': 'Статус загрузки данных в витрину',
                'verbose_name_plural': 'Статусы загрузки данных в витрину',
                'db_table': 'rdm_upload_status',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
        migrations.CreateModel(
            name='UploadStatusRequestLog',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('entry', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='upload_status_request_log', to='uploader_client.Entry', verbose_name='Cвязь запроса статуса с запросом в витрину')),
                ('status', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.UploadStatus', verbose_name='Cвязь с таблицей возможных статусов')),
                ('upload', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.ExportingDataSubStageUploaderClientLog', verbose_name='Cвязь запроса статуса с загрузкой файла в витрину')),
            ],
            options={
                'verbose_name': 'Лог запроса подэтапа выгрузки данных',
                'verbose_name_plural': 'Логи запроса подэтапа выгрузки данных',
                'db_table': 'rdm_upload_status_request_log',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
        migrations.AddField(
            model_name='exportingdatasubstage',
            name='status',
            field=models.ForeignKey(default='CREATED', on_delete=django.db.models.deletion.PROTECT, to='edu_rdm_integration.ExportingDataSubStageStatus', verbose_name='Статус'),
        ),
        migrations.AddField(
            model_name='exportingdatastage',
            name='status',
            field=models.ForeignKey(default='CREATED', on_delete=django.db.models.deletion.PROTECT, to='edu_rdm_integration.ExportingDataStageStatus', verbose_name='Статус'),
        ),
        migrations.CreateModel(
            name='CollectingExportedDataSubStage',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('started_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Время начала сбора данных')),
                ('ended_at', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Время завершения сбора данных')),
                ('function', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='function_tools.Entity', verbose_name='Функция')),
                ('previous', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='edu_rdm_integration.CollectingExportedDataSubStage', verbose_name='Предыдущий сбор данных')),
                ('stage', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='edu_rdm_integration.CollectingExportedDataStage', verbose_name='Этап подготовки данных для экспорта')),
                ('status', models.ForeignKey(default='CREATED', on_delete=django.db.models.deletion.PROTECT, to='edu_rdm_integration.CollectingDataSubStageStatus', verbose_name='Статус')),
            ],
            options={
                'verbose_name': 'Подэтап формирования данных для выгрузки',
                'verbose_name_plural': 'Подэтапы формирования данных для выгрузки',
                'db_table': 'rdm_collecting_exported_data_sub_stage',
            },
            bases=(educommon.django.db.mixins.ReprStrPreModelMixin, models.Model),
        ),
    ]
