Files
veilix.app/docs/01-product.md
T

157 lines
16 KiB
Markdown
Raw Normal View History

# 01. Продукт
## 1. Бренды
| | Вейликс | ВейликсВПН |
|---|---|---|
| Код сайта | `dedicated` | `mass` |
| Название | RU «Вейликс», EN «Veilix» | RU «ВейликсВПН», EN «VeilixVPN» |
| Цвет | фиолетовый | зелёный (бирюзовый) |
| Суть | личный VPN: у каждого ключа свой индивидуальный IP в выбранной стране | классический VPN: общий сервер, ключ даёт все страны тарифа |
| Протоколы | WireGuard / Amnezia WG и Xray (VLESS, Hysteria2, XHTTP) | Xray и WireGuard |
1. Это два разных продукта на одном бэкенде и одной базе. Сайт определяется по домену.
2. veilixvpn.com продаёт только mass. Перекрёстные ссылки между брендами допустимы: на mass есть блок «нужен свой IP — тарифы Вейликс».
3. Логотип — вариант «Слои» из макета (два перекрывающихся скруглённых квадрата). Подборщик вариантов знака из макета в продукт не переносим.
## 2. Домены
| Назначение | Вейликс prod | Вейликс dev | ВейликсВПН prod | ВейликсВПН dev |
|---|---|---|---|---|
| Сайт | veilix.app | dev.veilix.app | veilixvpn.com | dev.veilixvpn.com |
| Кабинет и оформление заказа | my.veilix.app | dev.my.veilix.app | my.veilixvpn.com | dev.my.veilixvpn.com |
| MiniApp | tg.veilix.app | dev.tg.veilix.app | tg.veilixvpn.com | dev.tg.veilixvpn.com |
1. Админка одна на оба бренда: `plc.veilix.cc` (prod) и `dev.plc.veilix.cc` (dev). Аналитика Umami — `umi.veilix.cc`.
2. Все домены указывают на 169.58.76.183 (этот сервер).
3. Домены хранятся в базе (коллекция «Домены»), у каждого свои языки и валюты. Новое зеркало добавляется записью в базе плюс блоком nginx и сертификатом.
## 3. Состав каждого бренда
1. Сайт: главная, цены, локации, поддержка, юридические страницы.
2. Веб-кабинет, в том числе оформление заказа (оформление живёт на my.*, а не на сайте).
3. MiniApp в Telegram — этап 3.
4. Два Telegram-бота: основной (команды, MiniApp, уведомления) и бот поддержки, подключённый к Chatwoot. Этапы 2–3.
## 4. Термины
1. **Сайт** — бренд (тенант). Почти все сущности привязаны к сайту.
2. **Домен** — хост, на котором открывается сайт, кабинет или MiniApp. У домена свои языки и валюты.
3. **Тариф** — то, что продаётся: цены в валютах, период, лимит устройств, страны.
4. **Страна** — общий справочник. **Локация** — страна на конкретном сайте: город, статус наличия.
5. **Ключ** — купленная единица доступа пользователя со сроком действия и автопродлением.
6. **Подключение** — конкретная конфигурация внутри ключа: WG или AWG-конфиг устройства, ссылка Happ, ссылка Xray.
7. **Заказ, Платёж, Движение по счёту** — см. [04-billing.md](04-billing.md).
8. **Валюта** и **Платёжная система** — справочники; платёжная система доступна в определённых валютах.
## 5. Dedicated (Вейликс)
1. Ключ — это индивидуальный IP в выбранной стране. Страна выбирается при покупке и не меняется никогда. Нужна другая страна — пользователь покупает новый ключ в другой локации и отключает автопродление старого. Отдельного функционала смены страны нет.
2. В каждый ключ входит выделенный RU-адрес: работает и как прямое соединение, и как мост в обе стороны.
3. До 5 устройств на ключ (поле тарифа), все с одним IP. WireGuard — по конфигу на устройство. Xray — ссылка для Happ (обычная или зашифрованная crypt-ссылка Happ, которая скрывает адрес подписки).
4. Тариф — ценовой уровень со своим набором стран:
| Тариф | Страны | Первый месяц | Далее в месяц | USD (из макета) |
|---|---|---|---|---|
| Базовый | 23 страны (см. раздел 7) | 4 900 ₽ | 2 499 ₽ | $49 / $24 |
| Редкие локации | CH, AE, SG, JP, KR | 6 900 ₽ | 3 499 ₽ | $69 / $34 |
| Дальние локации | AU, BR | 9 900 ₽ | 4 999 ₽ | $99 / $49 |
5. Первый месяц дороже, потому что включает подготовку сервера: выделение адреса, настройку протоколов и маршрутизации. Период — месяц.
6. Статусы локаций: «Серверы в наличии» и «Установим за 24 часа». Оплаченный период начинается с момента выдачи ключа. На этапе 1 ключи выдаёт администратор вручную, поэтому так работает для обоих статусов.
7. Каждый ключ продлевается независимо, в свою дату.
## 6. Mass (ВейликсВПН)
1. Ключ включает все страны тарифа. Страна при покупке не выбирается: список стран на сайте только показывает, что входит в ключ.
2. Happ — одна ссылка со всеми странами. WireGuard — пользователь может получить конфиги любой страны тарифа. На этапе 1 это конфиги, которые добавил администратор, по странам; нужна другая страна — через поддержку. Автоматически — на этапе 5.
3. Тарифы: «Месяц» 699 ₽ и «Год» 6 990 ₽ («582 ₽ в месяц, экономия 1 398 ₽»). Платы за подключение и доплат за страну нет: первый период стоит столько же, сколько продление.
4. До 5 устройств на ключ (поле тарифа).
5. Статусы локаций: «Включено» и «Скоро». Локации «Скоро» показываются, но не работают.
6. В кабинете — «Список ключей», как у dedicated; внутри ключа ссылка Xray и конфиги WG. Формулировки «текущая/запасная локация» из макета не используем.
7. Цены в USD (в макете их нет, решение Q-02): «Месяц» $6.99, «Год» $69.90.
## 7. Локации из макета
Город, статус и ценовой уровень dedicated. На mass те же 30 стран: «готова» = «Включено», «24 часа» = «Скоро».
| Код | Страна | Город | Статус | Уровень |
|---|---|---|---|---|
| NL | Нидерланды | Амстердам | готова | базовый |
| DE | Германия | Франкфурт | готова | базовый |
| US | США | Нью-Йорк | готова | базовый |
| GB | Великобритания | Лондон | готова | базовый |
| FR | Франция | Париж | готова | базовый |
| FI | Финляндия | Хельсинки | готова | базовый |
| SE | Швеция | Стокгольм | готова | базовый |
| NO | Норвегия | Осло | 24 часа | базовый |
| DK | Дания | Копенгаген | 24 часа | базовый |
| CH | Швейцария | Цюрих | готова | редкие |
| AT | Австрия | Вена | готова | базовый |
| ES | Испания | Мадрид | готова | базовый |
| IT | Италия | Милан | готова | базовый |
| PL | Польша | Варшава | готова | базовый |
| CZ | Чехия | Прага | готова | базовый |
| RO | Румыния | Бухарест | 24 часа | базовый |
| LT | Литва | Вильнюс | готова | базовый |
| LV | Латвия | Рига | готова | базовый |
| EE | Эстония | Таллин | 24 часа | базовый |
| TR | Турция | Стамбул | готова | базовый |
| KZ | Казахстан | Алматы | 24 часа | базовый |
| AM | Армения | Ереван | 24 часа | базовый |
| GE | Грузия | Тбилиси | 24 часа | базовый |
| AE | ОАЭ | Дубай | готова | редкие |
| SG | Сингапур | Сингапур | готова | редкие |
| JP | Япония | Токио | готова | редкие |
| KR | Южная Корея | Сеул | 24 часа | редкие |
| CA | Канада | Торонто | готова | базовый |
| AU | Австралия | Сидней | 24 часа | дальние |
| BR | Бразилия | Сан-Паулу | 24 часа | дальние |
Координаты для карты — в массиве `L(...)` в `design/handoff/project/Price.dc.html`. Количество свободных серверов из MiniApp (NL 12, DE 10, …) — демо-данные. Показывать ли счётчик на сайте — решается в этапе 1b.
## 8. Пользователи
1. Аккаунты раздельные по сайтам: один email на veilix.app и на veilixvpn.com — два разных пользователя.
2. Регистрация и вход — одно поле email и одноразовый код. Отдельной регистрации нет.
3. Telegram (этап 3): аккаунт можно создать по Telegram без почты. Почта привязывается кодом, после этого работает вход на сайте. На сайте есть кнопка «Войти через Telegram». Правила объединения аккаунтов в пределах сайта — [05-auth.md](05-auth.md).
## 9. Деньги
1. У пользователя есть счёт (баланс) в валюте аккаунта.
2. Валюты — отдельный справочник: RUB и USD. Переключатель валюты не зависит от языка: из России часто заходят через VPN, поэтому страна по IP для выбора валюты не годится. По умолчанию валюта зависит от языка: ru → RUB, остальные → USD.
3. Платёжные системы привязаны только к валютам. Где система доступна, следует из цепочки: валюты → домены, на которых они включены → сайты:
a. RUB — процессинги, принимающие карты РФ (вероятно, из Казахстана и Турции), без автосписаний. ЮKassa — опционально, только для пополнений;
b. USD — Stripe (карты, сохранение карты, автосписания) и криптовалюта.
4. Карта привязывается к аккаунту, а не к ключу (Stripe). Отвязать карту можно в аккаунте.
5. Продление: у каждого ключа галочка автопродления и кнопка «Продлить сейчас». Сначала списывается баланс, нехватка — с карты.
6. Не хватило денег: льготный период 3 дня (ключ работает), затем ключ истекает. Напоминание за 3 дня до окончания.
7. Ручные операции в админке: платёж через платёжную систему manual (проводится как настоящий), корректировка баланса, возврат на баланс.
8. Возвраты (политика из макета): если сервер не заработал по нашей вине — полностью в течение первых 7 дней; если пользователь передумал — остаток неиспользованного периода.
9. Подробно — [04-billing.md](04-billing.md).
## 10. Реферальная программа
1. «Приведите друга — вы оба получите по месяцу в подарок».
2. «Месяц» — это дни срока ключа, а не деньги: по 30 дней обоим после первой оплаты заказа другом ([D-025](decisions/D-025-referral-days.md)). Число дней задаётся в настройках сайта.
a. Другу — на ключ, который он купил.
b. Пригласившему — на его последний купленный ключ. Работающего ключа нет — дни добавятся к следующему.
3. Ссылки: `https://my.veilix.app/r/<код>` (для mass — `my.veilixvpn.com`) и `t.me/<основной бот>?start=<код>`.
4. Приглашения между брендами не засчитываются, самоприглашения отсекаются.
5. В кабинете показываем: приглашено, начислено месяцев, ожидает оплаты; список приглашённых с замаскированной почтой.
## 11. Поддержка и заявки
1. Страница поддержки: Telegram (бот поддержки бренда) и email, FAQ по разделам, форма связи.
2. Почта поддержки: `help@veilix.app` (dedicated) и `help@veilixvpn.com` (mass); в макете были домены .cc. Ящики — на внешнем почтовом хостинге; на этапе 2 письма из них забирает Chatwoot. До этого на сайте только адрес.
3. Заявка «Нужны индивидуальные условия» (dedicated) и «Нужны особые условия» (mass): имя, email, Telegram, WhatsApp, коротко о задаче.
4. Заявки и обращения сохраняются в Payload и приходят на почту поддержки (этап 1), затем уходят в Twenty CRM и Chatwoot (этап 2).
5. Часы поддержки из макета: с 10 до 20 по московскому времени в рабочие дни.
## 12. Языки
en (по умолчанию, без префикса в URL), ru, de, fr, es. Позже — pt-br и ja. Подробно — [06-i18n.md](06-i18n.md).
## 13. Юридические страницы
Условия использования, политика конфиденциальности, политика возвратов, политика cookies. Черновики на RU и EN готовятся в этапе 1b, с заглушками вместо данных юрлица (Q-13). Это черновики, не юридическая консультация: перед запуском — показать юристу. Stripe при подключении проверяет эти страницы.