| id | serial | - | NO | bot_env_variables.token_id, bot_groups.token_id, bot_instances.token_id, bot_launch_history.token_id, bot_logs.token_id, media_file_tokens.token_id | - | Уникальный идентификатор токена |
| project_id | integer | - | NO | - | bot_projects.id | Идентификатор проекта (ссылка на bot_projects.id) |
| owner_id | bigint | - | YES | - | telegram_users.id | Идентификатор владельца токена (наследуется от проекта) |
| name | text | - | NO | - | - | Пользовательское имя для токена |
| token | text | - | NO | - | - | Токен бота (хранится в зашифрованном виде) |
| is_default | integer | 0 | YES | - | - | Флаг токена по умолчанию (0 = нет, 1 = да) |
| is_active | integer | 1 | YES | - | - | Флаг активности токена (0 = неактивен, 1 = активен) |
| description | text | - | YES | - | - | Описание токена |
| bot_first_name | text | - | YES | - | - | Имя бота из Telegram API |
| bot_username | text | - | YES | - | - | Имя пользователя бота (@username) из Telegram API |
| bot_description | text | - | YES | - | - | Полное описание бота из Telegram API |
| bot_short_description | text | - | YES | - | - | Короткое описание бота из Telegram API |
| bot_photo_url | text | - | YES | - | - | URL аватарки бота из Telegram API |
| bot_can_join_groups | integer | - | YES | - | - | Флаг возможности бота присоединяться к группам |
| bot_can_read_all_group_messages | integer | - | YES | - | - | Флаг возможности бота читать все сообщения в группах |
| bot_supports_inline_queries | integer | - | YES | - | - | Флаг поддержки инлайн-запросов ботом |
| bot_has_main_web_app | integer | - | YES | - | - | Флаг наличия главного веб-приложения у бота |
| last_used_at | timestamp | - | YES | - | - | Время последнего использования токена |
| track_execution_time | integer | 0 | YES | - | - | Флаг отслеживания времени выполнения (0 = выключено, 1 = включено) |
| total_execution_seconds | integer | 0 | YES | - | - | Общее время выполнения в секундах |
| auto_restart | integer | 0 | YES | - | - | Флаг автоперезапуска при краше (0 = выключено, 1 = включено) |
| max_restart_attempts | integer | 3 | YES | - | - | Максимальное количество попыток автоперезапуска подряд |
| log_level | text | 'DEBUG' | YES | - | - | Уровень логирования Python-бота (DEBUG, INFO, WARNING, ERROR) |
| protect_content | integer | 0 | YES | - | - | Защита контента от копирования/пересылки (0 = выключено, 1 = включено) |
| save_incoming_media | integer | 0 | YES | - | - | Флаг сохранения входящих медиафайлов от пользователей (0 = выключено, 1 = включено) |
| messages_retention_days | integer | 0 | NO | - | - | Срок хранения сообщений в bot_messages (дни). 0 = без автоочистки; иначе сервер удаляет сообщения токена старше N дней. Дневные агрегаты аналитики не затрагиваются. |
| catch_all_handlers | integer | 1 | YES | - | - | Генерировать catch-all обработчики необработанных сообщений/callback (0 = выключено, 1 = включено). При наличии incoming-триггеров/динамических кнопок генератор включает их принудительно независимо от флага. |
| content_cache | integer | 0 | YES | - | - | Живое обновление контента из таблицы _content без перезапуска (0 = выключено, 1 = включено). По умолчанию выключено — меньше памяти. Управляет генерацией load_content/reload_content/_content_reload_loop/_content_subscribe_redis. |
| launch_mode | text | 'polling' | YES | - | - | Режим запуска бота: 'polling' (по умолчанию) или 'webhook' |
| webhook_base_url | text | - | YES | - | - | Базовый URL для webhook режима (например https://example.com) |
| webhook_secret_token | text | - | YES | - | - | Секретный токен для верификации webhook запросов |
| userbot_enabled | integer | 0 | YES | - | - | Включён ли Telethon userbot (0 = выключено, 1 = включено) |
| userbot_api_id | text | - | YES | - | - | API ID для Telethon (из my.telegram.org) |
| userbot_api_hash | text | - | YES | - | - | API Hash для Telethon (из my.telegram.org) |
| userbot_session_string | text | - | YES | - | - | Session string для Telethon (авторизованная сессия) |
| created_at | timestamp | now() | YES | - | - | Дата создания токена |
| updated_at | timestamp | now() | YES | - | - | Дата последнего обновления токена |