# Generated by Django 5.1.4 on 2024-12-12 12:28

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('hotels', '0004_alter_reservation_room_number'),
    ]

    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='Порт сервера базы данных.')),
                ('database', models.CharField(help_text='Имя базы данных.', max_length=255)),
                ('user', models.CharField(help_text='Имя пользователя базы данных.', max_length=255)),
                ('password', models.CharField(help_text='Пароль для подключения.', max_length=255)),
                ('table_name', models.CharField(blank=True, 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='UserActivityLog',
            fields=[
                ('id', models.BigIntegerField(primary_key=True, serialize=False)),
                ('user_id', models.BigIntegerField(verbose_name='ID пользователя')),
                ('ip', models.GenericIPAddressField(verbose_name='IP-адрес')),
                ('created', models.DateTimeField(verbose_name='Дата создания')),
                ('timestamp', models.BigIntegerField(verbose_name='Метка времени')),
                ('date_time', models.DateTimeField(verbose_name='Дата и время')),
                ('referred', models.TextField(blank=True, null=True, verbose_name='Реферальная ссылка')),
                ('agent', models.TextField(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(verbose_name='User-Agent строка')),
                ('location', models.CharField(blank=True, max_length=255, null=True, verbose_name='Местоположение')),
                ('page_id', models.BigIntegerField(blank=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(max_length=50, verbose_name='Тип')),
                ('last_counter', models.IntegerField(verbose_name='Последний счетчик')),
                ('hits', models.IntegerField(verbose_name='Количество обращений')),
                ('honeypot', models.BooleanField(verbose_name='Метка honeypot')),
                ('reply', models.BooleanField(verbose_name='Ответ пользователя')),
                ('page_url', models.URLField(blank=True, null=True, verbose_name='URL страницы')),
            ],
            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='Дата создания')),
                ('hotel', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hotels.hotel', verbose_name='Отель')),
            ],
            options={
                'verbose_name': 'Несовпадение в заселении',
                'verbose_name_plural': 'Несовпадения в заселении',
            },
        ),
    ]
