Files
veilix.app/docs/decisions/D-025-referral-days.md
T
andreypr207andClaude Opus 5.5 ae9531d5fc Документация: решения 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>
2026-10-21 16:00:32 +02:00

35 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).