.json workflow для n8n
-- Таблица пользователей
DROP TABLE users;
CREATE TABLE users (
id BIGINT PRIMARY KEY, -- telegram_id
username VARCHAR(255),
first_name VARCHAR(255),
last_name VARCHAR(255),
language_code VARCHAR(10),
is_premium BOOLEAN DEFAULT FALSE,
referrer_id BIGINT, -- тоже ссылается на telegram_id
balance DECIMAL(10, 2) DEFAULT 0,
tarif DECIMAL(10, 2) DEFAULT 0,
activated BOOLEAN DEFAULT FALSE,
utm VARCHAR(255),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
activated_at DATETIME DEFAULT NULL,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (referrer_id) REFERENCES users(id)
);
-- Таблица устройств
CREATE TABLE devices (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id BIGINT NOT NULL,
device_name VARCHAR(255),
marzban_id VARCHAR(255),
config_url TEXT,
status ENUM('active', 'inactive', 'deleted') DEFAULT 'active',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- Таблица подписок
CREATE TABLE subscriptions (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
plan_name VARCHAR(255),
device_limit INT DEFAULT 1,
price DECIMAL(10, 2),
expires_at DATETIME,
auto_renew BOOLEAN DEFAULT FALSE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
-- Таблица транзакций
CREATE TABLE transactions (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
amount DECIMAL(10, 2),
type ENUM('payment', 'referral_bonus', 'manual_adjustment'),
comment TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id)
);
graph TD
Start[/Пользователь вводит /start/] --> Welcome[Приветствие и информация о балансе]
Welcome --> Menu{Главное меню}
Menu --> Devices[/Мои устройства/]
Menu --> AddDevice[/Добавить устройство/]
Menu --> RemoveDevice[/Удалить устройство/]
Menu --> Invite[/Пригласить друга/]
Menu --> Help[/Помощь/]
Menu --> Privacy[/Конфиденциальность/]
Devices --> ShowDevices[Показать список устройств с типами и ID]
ShowDevices --> DeviceLink[Получить ссылку для настройки]
AddDevice --> AddWarning[Предупреждение о стоимости]
AddWarning --> DeviceType{Выберите тип устройства}
DeviceType --> iOS[iPhone/iPad]
DeviceType --> Android[Android]
DeviceType --> Comp[Компьютер]
DeviceType --> TV[Android TV]
Comp --> OSChoice{Mac или Windows}
OSChoice --> Mac[MacOS]
OSChoice --> Windows[Windows]
iOS --> GenLink[Генерация ссылки и инструкция]
Android --> GenLink
Mac --> GenLink
Windows --> GenLink
TV --> GenLink
RemoveDevice --> DeviceList[Выбор устройства из списка]
DeviceList --> RemoveConfirm[Подтверждение удаления]
RemoveConfirm --> Check24h{Проверка: >24ч с момента добавления?}
Check24h -- Нет --> BlockRemove[Ошибка: нельзя удалить]
Check24h -- Да --> VPNCheck[Предупреждение: отключите VPN]
VPNCheck --> RemoveSuccess[Удалено + обновление баланса]
RemoveSuccess --> LastDeviceCheck{Последнее устройство?}
LastDeviceCheck -- Да --> FreezeCharges[Остановка списаний]
LastDeviceCheck -- Нет --> Menu
Invite --> GenRefLink[Генерация реферальной ссылки]
GenRefLink --> ShowRef[Условия: +50₽ / +100₽ другу]
Help --> Topics{Выбор темы}
Topics --> Topic1[VPN не работает]
Topics --> Topic2[Инструкция по установке]
Topics --> Topic3[Не могу найти ссылку]
Topics --> Topic4[Низкая скорость]
Topics --> Topic5[Телевизор (Android TV)]
Topics --> Topic6[Заморозка баланса]
Topics --> Topic7[Альтернативный протокол]
Privacy --> Policy[Описание политики конфиденциальности]
style Start fill:#e0f7fa,stroke:#00acc1,stroke-width:2px
style Menu fill:#f1f8e9
style Devices,AddDevice,RemoveDevice,Invite,Help,Privacy fill:#fff3e0
style ShowDevices,AddWarning,DeviceType,DeviceList,GenRefLink,Topics fill:#e3f2fd
style Welcome fill:#dcedc8
Telegram бот VPNclient-bot предназначен для управления VPN-сервисом, включая настройку устройств, управление подпиской и балансом.
- Приветствие пользователя с именем
- Отображение текущего баланса и срока действия (~N дней)
- Информация о тарифе (100₽/мес за 1 устройство) и количестве активных устройств
- Рекомендация подписаться на канал @VPNclient_news
- Кнопка "Мои устройства" для повторного скачивания настроек
- Реферальная программа (50₽ за приглашенного друга)
- Отображение количества активных устройств и месячной платы
- Предупреждение о необходимости удалять неиспользуемые устройства
- Список устройств с идентификаторами и типами:
- App (iPhone/iPad)
- Vless (Android)
- Comp (Mac/Windows)
- TV (Android TV)
- Предупреждение о стоимости (100₽/мес за каждое устройство)
- Выбор типа устройства:
- iOS (iPhone, iPad)
- Android
- Компьютер (MacOS, Windows)
- Телевизор (Android TV)
- Для компьютера - уточнение типа (Mac/Windows)
- Генерация уникальной ссылки для настройки
- Инструкция по настройке для каждого типа устройства
- Выбор устройства из списка
- Подтверждение удаления с предупреждением отключить VPN
- Проверка: нельзя удалить устройство, добавленное менее 24 часов назад
- При удалении последнего устройства - уведомление о прекращении списаний
- Генерация персональной реферальной ссылки
- Условия: 50₽ за приглашенного друга (друг получает 100₽)
- Список тем для помощи:
- VPN не работает
- Инструкция по установке
- Не могу найти ссылку
- Низкая скорость
- Телевизор (Android TV)
- Заморозка баланса
- Альтернативный протокол
- Политика конфиденциальности с описанием:
- Использование только Telegram ID
- Отсутствие сбора персональных данных
- Условия хранения и удаления данных
- Расчет оставшегося срока действия баланса (~N дней)
- Списание абонентской платы: 100₽/мес за каждое активное устройство
- При удалении всех устройств - заморозка списаний
- Ограничение: нельзя удалить устройство, добавленное менее 24 часов назад
- При добавлении устройства:
- Генерация уникальной ссылки формата VPNclient://[уникальный_токен]
- Сохранение типа устройства и времени добавления
- При удалении устройства:
- Проверка активности VPN (только предупреждение)
- Обновление списка активных устройств
- Пересчет абонентской платы
- Генерация уникальной ссылки формата https://t.me/VPNclient-bot?start=[user_id]
- Начисление 50₽ при успешной регистрации друга
- Начисление 100₽ новому пользователю
Приветствие: Рады видеть вас снова, [Имя]!
Ваш баланс [Сумма]₽ (~[Дней] дней), аккаунт активен Тариф 100₽/мес за 1 устройство, активно [N] устройств.
Если вы потеряли настройки - вы можете повторно их скачать, нажав на кнопку "Мои устройства".
👭 Пригласите друзей в наш сервис и получите 50₽ на баланс за каждого друга. Ваши друзья получат 100₽ на баланс!
📌 Обязательно (!!) подпишитесь на наш канал @VPNclient_news!
Список устройств: У вас активно [N] устройств, цена 100₽/мес. за устройство. Ваша абонентская плата [Сумма]₽ в месяц.
❌ Удаляйте из бота устройства, которые вы не используете, чтобы не платить абонентскую плату за них!
🗝 Нажмите на идентификатор устройства в списке, чтобы получить ссылку для настройки приложения VPN.
Список ваших устройств:
Предупреждение: ВНИМАНИЕ! Выключите VPN перед удалением устройства!
Ошибка (менее 24 часов): Нельзя удалить устройство [ID] [Тип], прошло менее 24 часов
Успешное удаление: Устройство [ID] [Тип] удалено!
Удаление последнего устройства: ❗️ Внимание! Было удалено последнее устройство. Абоненская плата с вашего баланса теперь не взимается.
Предупреждение: 🙋♀️ Внимание! Вы добавляете настройки для еще одного устройства. Стоимость 100р/мес за каждое дополнительное устройство.
Инструкция для iOS:
- Установите приложение VPNclient из AppStore
- Скопируйте ссылку настройки в буфер обмена. Настройки всегда доступны в разделе "Мои устройства".
- Запустите приложение VPNclient, вставьте скопированную ссылку и разрешите приложению добавление конфигураций VPN.
- Включите VPN.
Инструкция для Windows:
- Скачайте и установите приложение VPNclient для Windows: [ссылка]
- Скопируйте ссылку в буфер обмена. Ссылка для настройки VPN всегда доступна в разделе "Мои устройства".
- Запустите приложение VPNclient и вставьте скопированную ссылку.
- Включите VPN.
- Интеграция с платежной системой для пополнения баланса
- Хранение данных о пользователях и их устройствах
- Генерация уникальных VPN-конфигураций
- Логирование действий пользователей
- Система учета рефералов
- Регулярные напоминания о подписке на канал @VPNclient_news
- Проверка подписки пользователя на канал
- Запрет на использование сервиса для скачивания торрентов
- Возможность обновления приложений (VPNclient для iPhone, HitRay для Android)