Документация: решения Q-02, Q-08, Q-09, Q-16; реферальный бонус днями

- Q-02: цены mass в USD $6.99 и $69.90, пресеты пополнения в RUB и USD.
- D-025: реферальный бонус — 30 дней к ключу обоим вместо денег;
  продления без оплаты (key-extensions); крайние случаи — Q-19.
- Q-08, Q-09: help@veilix.app и help@veilixvpn.com, часы по Москве.
- Q-16: ящики на почтовом хостинге (R-18), на этапе 2 — Chatwoot по IMAP.
- R-01 сделано; R-17: путь HMR в Next 16.4 — /_next/hmr.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
andreypr207andClaude Opus 5.5 committed 2026-10-21 16:00:32 +02:00
1 parent 1a5fe33ead
commit ae9531d5fc
16 files changed
+124 -47

No files matched your search

+34
View File
@@ -0,0 +1,34 @@
# D-025. Реферальный бонус — дни срока ключа
Статус: принято, 21.10.2026. Заменяет денежный бонус из макета (Q-02). Крайние случаи — предложение по Q-19.
## Контекст
В макете «месяц в подарок» начисляется обоим деньгами на баланс: 2 499 ₽ у dedicated и 699 ₽ у mass. Для этого нужна сумма в каждой валюте каждого сайта, а бонус уходит в ближайшее списание, в том числе за другой тариф.
## Решение
1. Бонус — дни срока ключа, без денег. Число дней — настройка сайта `referralBonusDays`, по умолчанию 30.
2. Приглашённый получает дни на ключ, который купил заказом, выполнившим условие (первый оплаченный `new_key`).
3. Пригласивший получает дни на свой последний купленный ключ.
4. Условие, проверка самоприглашений и границы сайта прежние ([04-billing.md](../04-billing.md), раздел 11).
5. Начисление — продление без оплаты. Тот же механизм у «Продлить вручную» в админке: запись в коллекции `key-extensions` ([04-billing.md](../04-billing.md), раздел 6.4).
## Крайние случаи (предложение, Q-19)
1. «Месяц» приглашённому — тоже 30 дней: одна настройка на обе стороны.
2. Ключ ещё готовится (`provisioning`) — дни добавятся при выдаче: срок идёт с выдачи.
3. «Последний ключ» — купленный последним среди неистёкших и неотменённых (`provisioning`, `active`, `grace`). Ключ в льготном периоде после начисления снова `active`.
4. У пригласившего такого ключа нет — дни ждут и добавятся к его следующему ключу.
5. Возврат по заказу приглашённого бонус пригласившего не отменяет; злоупотребления разбирает администратор.
## Рассмотренные варианты
1. Деньги на баланс, как в макете: суммы в каждой валюте, бонус уходит на любое списание.
2. Дни на ключ с ближайшей датой окончания: пользователь выбрал последний ключ.
## Последствия
1. В `sites` вместо сумм по валютам `referralBonus` — число дней `referralBonusDays`. Тип движения `referral_bonus` в `ledger-entries` не нужен.
2. Новая коллекция `key-extensions` — продления без оплаты: бонус и компенсация ([03-data-model.md](../03-data-model.md), раздел 5.4). У приглашения — ключи обеих сторон.
3. Кабинет: условия на странице «Реферальная программа» — в днях; в истории платежей строка «Реферальный бонус» показывает «+30 дней» вместо суммы ([07-frontend.md](../07-frontend.md), раздел 7).
+1
View File
@@ -28,3 +28,4 @@
| [D-022](D-022-proxy-routing.md) | Proxy: внутренние маршруты по хосту, домены из внутреннего эндпоинта | принято |
| [D-023](D-023-site-locales.md) | Языки сайта — поле `sites.locales`, домены показывают их часть | принято |
| [D-024](D-024-locale-redirect.md) | Перенаправление на выбранный язык | принято |
| [D-025](D-025-referral-days.md) | Реферальный бонус — дни срока ключа, а не деньги | принято |