miltu-bot refactor
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Generated by Django 5.2.5 on 2025-08-08 01:42
|
||||
# Generated by Django 5.2.5 on 2025-08-08 02:33
|
||||
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
@@ -19,37 +19,51 @@ class Migration(migrations.Migration):
|
||||
('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(max_length=200)),
|
||||
('is_active', models.BooleanField(default=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TelegramChat',
|
||||
fields=[
|
||||
('id', models.BigIntegerField(primary_key=True, serialize=False)),
|
||||
('type', models.CharField(choices=[('private', 'private'), ('group', 'group'), ('supergroup', 'supergroup'), ('channel', 'channel')], max_length=20)),
|
||||
('title', models.CharField(blank=True, default='', max_length=255)),
|
||||
('username', models.CharField(blank=True, default='', max_length=255)),
|
||||
('is_member', models.BooleanField(default=True)),
|
||||
('joined_at', models.DateTimeField(default=django.utils.timezone.now)),
|
||||
('left_at', models.DateTimeField(blank=True, null=True)),
|
||||
('last_message_at', models.DateTimeField(blank=True, null=True)),
|
||||
('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 чаты',
|
||||
'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', max_length=20)),
|
||||
('allowed_updates', models.JSONField(blank=True, default=list)),
|
||||
('admin_user_ids', models.JSONField(blank=True, default=list, help_text='Список Telegram user_id админов')),
|
||||
('webhook_url', models.URLField(blank=True, default='', help_text='Если используете вебхуки')),
|
||||
('use_webhook', models.BooleanField(default=False)),
|
||||
('bot', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='config', to='bot.telegrambot')),
|
||||
('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')],
|
||||
},
|
||||
),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user