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

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

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

import edu_rdm_integration.stages.export_data.helpers


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.stages.export_data.helpers.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),
        ),
    ]
