# Generated by Django 5.1.4 on 2024-12-25 04:55

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='ExternalDBSettings',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(help_text='Имя подключения для идентификации.', max_length=255, unique=True)),
                ('host', models.CharField(help_text='Адрес сервера базы данных.', max_length=255)),
                ('port', models.PositiveIntegerField(default=3306, help_text='Порт сервера базы данных.')),
                ('user', models.CharField(help_text='Имя пользователя базы данных.', max_length=255)),
                ('password', models.CharField(help_text='Пароль для подключения.', max_length=255)),
                ('database', models.CharField(default='u1510415_wp832', help_text='Имя базы данных.', max_length=255)),
                ('table_name', models.CharField(blank=True, default='wpts_user_activity_log', help_text='Имя таблицы для загрузки данных.', max_length=255, null=True)),
                ('selected_fields', models.TextField(blank=True, help_text='Список полей для загрузки (через запятую).', null=True)),
                ('is_active', models.BooleanField(default=True, help_text='Флаг активности подключения.')),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
            ],
            options={
                'verbose_name': 'Настройка подключения к БД',
                'verbose_name_plural': 'Настройки подключений к БД',
            },
        ),
        migrations.CreateModel(
            name='ImportedHotel',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('external_id', models.CharField(max_length=255, verbose_name='Внешний ID отеля')),
                ('name', models.CharField(max_length=255, verbose_name='Имя отеля')),
                ('display_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Отображаемое имя')),
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')),
                ('updated', models.DateTimeField(auto_now=True, verbose_name='Дата обновления')),
                ('imported', models.BooleanField(default=False, verbose_name='Импортирован в основную базу')),
            ],
            options={
                'verbose_name': 'Импортированный отель',
                'verbose_name_plural': 'Импортированные отели',
            },
        ),
        migrations.CreateModel(
            name='RoomDiscrepancy',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('room_number', models.CharField(max_length=50, verbose_name='Номер комнаты')),
                ('booking_id', models.CharField(max_length=255, verbose_name='ID бронирования')),
                ('check_in_date_expected', models.DateField(verbose_name='Ожидаемая дата заселения')),
                ('check_in_date_actual', models.DateField(verbose_name='Фактическая дата заселения')),
                ('discrepancy_type', models.CharField(choices=[('early', 'Раннее заселение'), ('late', 'Позднее заселение'), ('missed', 'Неявка')], max_length=50, verbose_name='Тип несоответствия')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')),
            ],
            options={
                'verbose_name': 'Несовпадение в заселении',
                'verbose_name_plural': 'Несовпадения в заселении',
            },
        ),
        migrations.CreateModel(
            name='SyncLog',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created', models.DateTimeField(auto_now=True, verbose_name='Дата обновления')),
                ('recieved_records', models.IntegerField(default=0, verbose_name='Полученные записи')),
                ('processed_records', models.IntegerField(default=0, verbose_name='Обработанные записи')),
            ],
            options={
                'verbose_name': 'Журнал синхронизации',
                'verbose_name_plural': 'Журналы синхронизации',
            },
        ),
        migrations.CreateModel(
            name='UserActivityLog',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('external_id', models.CharField(db_index=True, max_length=255, unique=True, verbose_name='Внешний ID')),
                ('user_id', models.BigIntegerField(blank=True, db_index=True, null=True, verbose_name='ID пользователя')),
                ('ip', models.GenericIPAddressField(blank=True, db_index=True, null=True, verbose_name='IP-адрес')),
                ('created', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Дата создания')),
                ('timestamp', models.BigIntegerField(blank=True, null=True, verbose_name='Метка времени')),
                ('date_time', models.DateTimeField(blank=True, null=True, verbose_name='Дата и время')),
                ('referred', models.TextField(blank=True, null=True, verbose_name='Реферальная ссылка')),
                ('agent', models.TextField(blank=True, null=True, verbose_name='Агент пользователя')),
                ('platform', models.CharField(blank=True, max_length=255, null=True, verbose_name='Платформа')),
                ('version', models.CharField(blank=True, max_length=255, null=True, verbose_name='Версия')),
                ('model', models.CharField(blank=True, max_length=255, null=True, verbose_name='Модель устройства')),
                ('device', models.CharField(blank=True, max_length=255, null=True, verbose_name='Тип устройства')),
                ('UAString', models.TextField(blank=True, null=True, verbose_name='User-Agent строка')),
                ('location', models.CharField(blank=True, max_length=255, null=True, verbose_name='Местоположение')),
                ('page_id', models.BigIntegerField(blank=True, db_index=True, null=True, verbose_name='ID страницы')),
                ('url_parameters', models.TextField(blank=True, null=True, verbose_name='Параметры URL')),
                ('page_title', models.TextField(blank=True, null=True, verbose_name='Заголовок страницы')),
                ('type', models.CharField(blank=True, max_length=50, null=True, verbose_name='Тип')),
                ('last_counter', models.IntegerField(blank=True, null=True, verbose_name='Последний счетчик')),
                ('hits', models.IntegerField(blank=True, default='0', null=True, verbose_name='Количество обращений')),
                ('honeypot', models.BooleanField(blank=True, null=True, verbose_name='Метка honeypot')),
                ('reply', models.BooleanField(blank=True, null=True, verbose_name='Ответ пользователя')),
                ('page_url', models.URLField(blank=True, null=True, verbose_name='URL страницы')),
            ],
            options={
                'verbose_name': 'Регистрация посетителей',
                'verbose_name_plural': 'Регистрации посетителей',
            },
        ),
        migrations.CreateModel(
            name='ViolationLog',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('room_number', models.CharField(blank=True, max_length=50, null=True, verbose_name='Номер комнаты')),
                ('violation_type', models.CharField(choices=[('missed', 'Неявка'), ('early', 'Раннее заселение'), ('late', 'Позднее заселение')], max_length=50, verbose_name='Тип нарушения')),
                ('violation_details', models.TextField(blank=True, null=True, verbose_name='Детали нарушения')),
                ('hits', models.IntegerField(verbose_name='Срабатывания')),
                ('detected_at', models.DateTimeField(auto_now_add=True, verbose_name='Дата обнаружения')),
                ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')),
            ],
            options={
                'verbose_name': 'Журнал нарушений',
                'verbose_name_plural': 'Журналы нарушений',
            },
        ),
    ]
