101 lines
3.8 KiB
Python
101 lines
3.8 KiB
Python
from django.db import models
|
||
|
||
|
||
class BotConfig(models.Model):
|
||
bot_token = models.CharField(max_length=255, help_text="Токен для подключения к Telegram API")
|
||
channel_id = models.CharField(max_length=100, help_text="ID канала/чата, куда бот будет отправлять сообщения")
|
||
bot_name = models.CharField(max_length=100, help_text="Отображаемое имя бота")
|
||
chat_enabled = models.BooleanField(
|
||
default=True,
|
||
verbose_name="Чат включён",
|
||
help_text="Если выключено, то глобально блокируется рассылка сообщений в чате."
|
||
)
|
||
global_block_message = models.TextField(
|
||
blank=True,
|
||
null=True,
|
||
verbose_name="Сообщение о глобальном блоке",
|
||
help_text="Сообщение, которое показывается пользователям, если чат отключён."
|
||
)
|
||
welcome_messages = models.ManyToManyField('WelcomeMessage', blank=True, verbose_name="Варианты приветствия")
|
||
active_welcome = models.ForeignKey(
|
||
'WelcomeMessage',
|
||
null=True,
|
||
blank=True,
|
||
on_delete=models.SET_NULL,
|
||
related_name="used_by",
|
||
verbose_name="Активное приветствие"
|
||
)
|
||
is_active = models.BooleanField(default=False, verbose_name="Включен")
|
||
|
||
def __str__(self):
|
||
return self.bot_name
|
||
|
||
class Meta:
|
||
verbose_name = "Настройка бота"
|
||
verbose_name_plural = "Настройки Ботов"
|
||
|
||
|
||
class WelcomeMessage(models.Model):
|
||
bot = models.ForeignKey(BotConfig, on_delete=models.CASCADE, verbose_name="Бот")
|
||
welcome_message = models.TextField(
|
||
verbose_name="Приветственное сообщение",
|
||
blank=True,
|
||
null=True,
|
||
help_text="Текст, который будет отправлен при запуске команды /start"
|
||
)
|
||
welcome_image = models.ImageField(
|
||
upload_to='static/upload_image/',
|
||
verbose_name="Приветственное изображение",
|
||
blank=True,
|
||
null=True,
|
||
help_text="Загрузите изображение для приветствия"
|
||
)
|
||
admin_contact = models.CharField(
|
||
max_length=255,
|
||
verbose_name="Контакт администратора",
|
||
blank=True,
|
||
null=True,
|
||
help_text="Ссылка или контакт для связи с администратором"
|
||
)
|
||
channel_link = models.URLField(
|
||
verbose_name="Ссылка на канал",
|
||
blank=True,
|
||
null=True,
|
||
help_text="URL канала бота"
|
||
)
|
||
group_link = models.URLField(
|
||
verbose_name="Ссылка на группу",
|
||
blank=True,
|
||
null=True,
|
||
help_text="URL группы бота"
|
||
)
|
||
custom_link1_name = models.CharField(
|
||
max_length=100,
|
||
verbose_name="Название кастомной ссылки 1",
|
||
blank=True,
|
||
null=True
|
||
)
|
||
custom_link1_url = models.URLField(
|
||
verbose_name="URL кастомной ссылки 1",
|
||
blank=True,
|
||
null=True
|
||
)
|
||
custom_link2_name = models.CharField(
|
||
max_length=100,
|
||
verbose_name="Название кастомной ссылки 2",
|
||
blank=True,
|
||
null=True
|
||
)
|
||
custom_link2_url = models.URLField(
|
||
verbose_name="URL кастомной ссылки 2",
|
||
blank=True,
|
||
null=True
|
||
)
|
||
|
||
class Meta:
|
||
verbose_name = "Приветственное сообщение"
|
||
verbose_name_plural = "Приветственные сообщения"
|
||
|
||
def __str__(self):
|
||
return f"Приветствие для {self.bot}"
|