# Техническое задание на разработку чат-бота 1. Оператор самостоятельно создает контейнеры и добавляет в определенную папку файлы с доступами к VPN, которые бот будет отправлять клиентам. Файлы должны быть разделены по странам (Пункт 6). 2. Когда клиент начинает взаимодействовать с ботом, бот приветствует его и предлагает три кнопки: “Связаться с админом”, “Купить VPN” и "Проверить остаток подписки". 3. Если клиент выбирает “Связаться с админом”, бот предоставляет контактные данные администратора. 4. Если клиент выбирает “Купить VPN”, ему предлагается выбрать страну и срок подписки. 5. Цены за VPN подписку будут на все страны одинаковые и захардкожены в коде. Сроки подписки и цены следующие: - 1 месяц - 100 рублей - 6 месяцев - 550 рублей - 12 месяцев - 1000 рублей 6. Бот будет определять страну, для которой сделан конфиг, по номеру (с 1 по 100 - Швейцария, с 101 по 200 - Нидерланды, с 201 по 300 - Германия). Конфиг страна => деапозон должен настраиваться в админ-боте в группе админов. 7. После выбора страны и срока, клиент производит оплату через Prime Payments (при условии, что у вас зарегистрирован магазин для оплаты). 8. После оплаты, чат-бот отправляет клиенту файл с доступом к VPN из списка, который был загружен оператором и соответствует выбранной стране. 9. Если файлы с доступами к VPN для определенной страны заканчиваются, бот должен уведомить администраторов о необходимости генерации новых контейнеров для этой страны. 10. Если клиент выбирает "Проверить остаток подписки", бот сообщает пользователю дату окончания его подписки. 11. Добавить кнопку "Тестовый период на 1 неделю", котоая будет давать доступ пользователю к VPN на 1 неделю. И при окончании подписки предложит оплатить на n период или отправт в чат сообщение об отключении vpn для данного пользователя ## Сценарий продления подписки 1. Уведомление о продлении: За 5 дней до окончания подписки, бот уведомляет клиента о необходимости продления и предоставляет ссылку на продление. В день окончания подписки повторяется уведомление. 2. Если пользователь не отключил к нему доступ - то спустя 5 дней после окончания подписки/тестового периода бот предложит ему продолжить и оплатить подписку. 3. Если клиент не продлевает подписку, бот отправляет сообщение администраторам с указанием того, какой контейнер нужно выключить. 4. Продление подписки: Когда клиент выбирает продлить подписку, бот предлагает ему опции для продления подписки, аналогично покупке новой подписки (выбор страны и срока подписки с соответствующими ценами). И добавляет кнопку "Продолжить существующую подписку", которая переводит пользователя сразу на оплату. 5. Перед оплатой подписки, бот предлагает клиенту возможность использовать промо-код, если есть, с кнопкой "Использовать промокод". Типы промо-кодов указаны в разделе "Промо-коды". 6. Оплата: Клиент производит оплату через интегрированную платежную систему Prime Payments. 7. Подтверждение продления: После успешной оплаты, бот отправляет клиенту подтверждение о продлении подписки, а также обновляет информацию о сроках действия подписки в базе данных. ## Дополнительные функции для администраторов 1. Администраторы могут генерировать промо-коды с фиксированным процентом скидки(список вариантов промо кодов указан в пункте "Промо-коды"). Промо-коды сохраняются в базе данных и могут быть выгружены в excel. 2. В админском чат-боте добавить возможность просмотра отчетов об использованных промо-кодов и оплатах. Отчеты должны включать информацию о количестве использованных промо-кодов, скидках, общей сумме оплат и других соответствующих данных. 3. Админ должен иметь возможность задавать конфиг "страна => деапозон номеров" в админ группе. ## Промо-коды 1. Есть 3 вида промо-кодов - Одноразовый во всех смыслах, который генерируется 1 раз и используется 1 раз (не важно каким пользователем). Скидка 30% задается хардкодно. - Многоразовый, который может использоваться всеми пользователями неограниченное количество раз - он привязывается к пользователю и дает ему пожизненно скидку -30%, но в то же время запрещает использовать другие промо-коды - Многоразовый, который 1 пользователь может использовать 1 раз, но его могут использовать n-пользователей. 2. Нужно запретить суммировать скидки и промокоды при оплате.