- R-17: location /_next/hmr во всех dev-блоках nginx, горячая перезагрузка держится без переподключений; этап 1a закрыт полностью. - Q-19: крайние случаи реферального бонуса днями подтверждены (D-025). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
D-025. Реферальный бонус — дни срока ключа
Статус: принято, 21.10.2026. Заменяет денежный бонус из макета (Q-02); крайние случаи — Q-19.
Контекст
В макете «месяц в подарок» начисляется обоим деньгами на баланс: 2 499 ₽ у dedicated и 699 ₽ у mass. Для этого нужна сумма в каждой валюте каждого сайта, а бонус уходит в ближайшее списание, в том числе за другой тариф.
Решение
- Бонус — дни срока ключа, без денег. Число дней — настройка сайта
referralBonusDays, по умолчанию 30. - Приглашённый получает дни на ключ, который купил заказом, выполнившим условие (первый оплаченный
new_key). - Пригласивший получает дни на свой последний купленный ключ.
- Условие, проверка самоприглашений и границы сайта прежние (04-billing.md, раздел 11).
- Начисление — продление без оплаты. Тот же механизм у «Продлить вручную» в админке: запись в коллекции
key-extensions(04-billing.md, раздел 6.4).
Крайние случаи (Q-19)
- «Месяц» приглашённому — тоже 30 дней: одна настройка на обе стороны.
- Ключ ещё готовится (
provisioning) — дни добавятся при выдаче: срок идёт с выдачи. - «Последний ключ» — купленный последним среди неистёкших и неотменённых (
provisioning,active,grace). Ключ в льготном периоде после начисления сноваactive. - У пригласившего такого ключа нет — дни ждут и добавятся к его следующему ключу.
- Возврат по заказу приглашённого бонус пригласившего не отменяет; злоупотребления разбирает администратор.
Рассмотренные варианты
- Деньги на баланс, как в макете: суммы в каждой валюте, бонус уходит на любое списание.
- Дни на ключ с ближайшей датой окончания: пользователь выбрал последний ключ.
Последствия
- В
sitesвместо сумм по валютамreferralBonus— число днейreferralBonusDays. Тип движенияreferral_bonusвledger-entriesне нужен. - Новая коллекция
key-extensions— продления без оплаты: бонус и компенсация (03-data-model.md, раздел 5.4). У приглашения — ключи обеих сторон. - Кабинет: условия на странице «Реферальная программа» — в днях; в истории платежей строка «Реферальный бонус» показывает «+30 дней» вместо суммы (07-frontend.md, раздел 7).