# Техническое задание: Сервис подписки на VPN
## Цель
Цель данного проекта - разработать сервис подписки на VPN, который позволяет пользователям покупать учетные данные VPN через чат-бот в Telegram, интегрируется с API Prime Payments для обработки платежей, управляет развертыванием и удалением контейнеров OpenVPN на основе статуса подписки и предоставляет административную панель для мониторинга продаж, использования серверов и подписок.
## Требования
### 1. Чат-бот Telegram
- Чат-бот должен общаться с пользователями через мессенджер Telegram.
- Он должен предоставлять удобный интерфейс для пользователей для просмотра доступных тарифных планов VPN, покупки учетных данных VPN и запроса поддержки.
- Чат-бот должен поддерживать обработку распространенных пользовательских запросов и предоставлять соответствующие ответы.
#### Сценарий использования чат-бота
1. Пользователь начинает общение с чат-ботом, нажимая кнопку "Начать" или отправляя команду "/start".
2. Чат-бот приветствует пользователя и предлагает несколько основных опций: "Просмотреть тарифы", "Купить VPN", "Поддержка".
3. При выборе "Просмотреть тарифы", чат-бот представляет список доступных тарифных планов с описанием, ценой и длительностью подписки.
4. При выборе "Купить VPN", пользователь выбирает желаемый тарифный план. Затем чат-бот отправляет пользователю ссылку на "prime payments" для оплаты.
5. После успешной оплаты чат-бот отправляет пользователю учетные данные VPN (open vpn creds).
6. В любой момент пользователь может выбрать опцию "Поддержка" для получения контактов поддержки
### 2. Интеграция с API Prime Payments
- Сервис должен интегрироваться с API Prime Payments для обработки платежей.
- Интеграция должна поддерживать обработку успешных и неудачных платежей, а также отправку уведомлений пользователям и администратору сервиса.
### 3. Управление учетными данными VPN
- После успешной оплаты сервис должен генерировать уникальные учетные данные VPN для пользователя.
- Сервис должен отправлять учетные данные VPN пользователю через чат-бот в Telegram.
### 4. Развертывание контейнеров OpenVPN
- При покупке учетных данных VPN пользователем, сервис должен автоматически развернуть контейнер OpenVPN с уникальными учетными данными пользователя.
- Сервис должен возвращать пользователю необходимую информацию о подключении (config openVPN) через чат-бот в Telegram.
### 5. Управление подписками
- Сервис должен отслеживать статус подписки каждого пользователя.
- Сервис должен периодически проверять активные подписки и автоматически отключать контейнеры OpenVPN с истекшими подписками.
- Сервис должен уведомлять пользователей о предстоящем истечении срока их подписки и предлагать возможность продления через чат-бот в Telegram.
### 6. Административная панель
- Сервис должен предоставлять административную панель для мониторинга продаж, использования серверов и подписок.
- Панель должна отображать соответствующие метрики и отчеты, такие как общее количество активных подписок, доход, использование ресурсов сервера и активность пользователей.
- Административная панель должна позволять администраторам управлять учетными записями пользователей, настраивать тарифные планы VPN и получать доступ к журналам для устранения неполадок.
### Результаты
- Полностью функциональный чат-бот Telegram, способный взаимодействовать с пользователями и облегчать покупку учетных данных VPN.
- Бэкенд-сервисы для обработки интеграции с API Prime Payments, управления учетными данными VPN и развертывания контейнеров OpenVPN.
- Система управления подписками для отслеживания активных подписок и управления контейнерами OpenVPN.
- Административная панель для мониторинга продаж, использования серверов и подписок, а также управления учетными записями пользователей и тарифными планами VPN.
- Подробная документация по настройке, конфигурации и обслуживанию сервиса.
- Тестовые случаи и результаты тестирования, демонстрирующие корректную работу сервиса.