# Generated by Django 5.2.5 on 2025-08-08 02:33

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


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='TelegramBot',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(help_text='Произвольное имя бота в проекте', max_length=100)),
                ('username', models.CharField(blank=True, help_text='@username в Telegram', max_length=100)),
                ('token', models.CharField(help_text='Токен от @BotFather', max_length=200)),
                ('is_active', models.BooleanField(default=True, help_text='Если включен — может быть запущен runbots')),
            ],
            options={
                'verbose_name': 'Telegram бот',
                'verbose_name_plural': 'Telegram боты',
                'ordering': ('-is_active', 'name'),
            },
        ),
        migrations.CreateModel(
            name='BotConfig',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('parse_mode', models.CharField(choices=[('HTML', 'HTML'), ('MarkdownV2', 'MarkdownV2'), ('None', 'None')], default='HTML', help_text='Режим парсинга сообщений (или None для обычного текста)', max_length=20)),
                ('allowed_updates', models.JSONField(blank=True, default=list, help_text="Список типов апдейтов, например ['message','my_chat_member','chat_member']")),
                ('admin_user_ids', models.JSONField(blank=True, default=list, help_text='Список Telegram user_id, имеющих права администратора')),
                ('webhook_url', models.URLField(blank=True, default='', help_text='URL вебхука (если используете вебхуки)')),
                ('use_webhook', models.BooleanField(default=False, help_text='Включить режим webhook вместо polling')),
                ('bot', models.OneToOneField(help_text='Какому боту принадлежит конфигурация', on_delete=django.db.models.deletion.CASCADE, to='bot.telegrambot')),
            ],
            options={
                'verbose_name': 'Конфигурация бота',
                'verbose_name_plural': 'Конфигурации ботов',
            },
        ),
        migrations.CreateModel(
            name='TelegramChat',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('chat_id', models.BigIntegerField(help_text='Идентификатор чата в Telegram (может быть до ~52 бит)')),
                ('type', models.CharField(choices=[('private', 'private'), ('group', 'group'), ('supergroup', 'supergroup'), ('channel', 'channel')], help_text='Тип чата', max_length=20)),
                ('title', models.CharField(blank=True, default='', help_text='Название (для групп/каналов)', max_length=255)),
                ('username', models.CharField(blank=True, default='', help_text='Username чата/канала (если есть)', max_length=255)),
                ('is_member', models.BooleanField(default=True, help_text='Состоит ли бот в чате сейчас')),
                ('joined_at', models.DateTimeField(default=django.utils.timezone.now, help_text='Когда бот был добавлен')),
                ('left_at', models.DateTimeField(blank=True, help_text='Когда бот покинул чат', null=True)),
                ('last_message_at', models.DateTimeField(blank=True, help_text='Когда последний раз видели сообщение в этом чате', null=True)),
                ('bot', models.ForeignKey(help_text='К какому боту относится этот чат', on_delete=django.db.models.deletion.CASCADE, related_name='chats', to='bot.telegrambot')),
            ],
            options={
                'verbose_name': 'Telegram чат',
                'verbose_name_plural': 'Telegram чаты',
                'ordering': ('-is_member', '-joined_at'),
                'indexes': [models.Index(fields=['bot', 'chat_id'], name='bot_telegra_bot_id_ac3d0d_idx'), models.Index(fields=['bot', 'type'], name='bot_telegra_bot_id_3a438c_idx'), models.Index(fields=['bot', 'is_member'], name='bot_telegra_bot_id_e25f2b_idx')],
                'constraints': [models.UniqueConstraint(fields=('bot', 'chat_id'), name='uniq_bot_chat')],
            },
        ),
    ]
