- Новый порядок этапов (D-026): фаза 1 — концепт на dev без внешних сервисов (1b сайт, 1c вход, 1d ключи, 1e счёт и демо-оплата, 1f демо-выдача, 1g продления, 1h рефералы); фаза 2 — Telegram; фаза 3 — ALTCHA, ЮKassa, почта, Twenty, Chatwoot, Umami, выдача через API и публичный запуск; фаза 4 — звёзды и эквайринги. - Решения: демо-оплата по списку IP (D-027), выдача ключей через адаптер manual/demo/api (D-028), страницы сайта из блоков Payload (D-029), пересборка через revalidatePath (D-030), RU-адрес у mass (D-031), счётчик свободных серверов (D-032), переводы на 5 языков в каждом этапе (D-033). - Тексты описывают работающий продукт; Вейликс — выделенный IP на общем сервере; Telegram поддержки — @veilix_support; сроки ответа не обещаем; VPN-серверы не ведут журналов. - Ссылки на этапы во всех документах, Q-12 решён (ЮKassa для RUB), R-19 (библиотеки для headless Chromium) сделано. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Этап 1g. Продления
Статус: не начат.
1. Цель
Ключи продлеваются сами — с баланса, затем с демо-карты; льготный период, истечение и напоминания работают.
2. Входит
- Задачи
renewals,expiry,reminders,reconcile(04-billing.md, разделы 6–7; 02-architecture.md, раздел 7). - Автопродление: галочка на ключе, «Продлить сейчас»; списание с баланса, затем с демо-карты, повторы. Неуспешное списание с демо-карты включается в админке (D-027).
- Продления без оплаты: коллекция
key-extensions, «Продлить вручную» в админке (04-billing.md, раздел 6.4). - Кабинет: «Следующее списание», «Продлится автоматически через N дней» или «Осталось N дней», бейдж «Истекает».
- Шаблоны на 5 языках:
renewal_reminder,expiry_reminder,renewal_succeeded,renewal_failed,grace_started,key_expired.
3. Перед стартом
Этап 1f готов.
4. Готово, когда
Автотесты проходят сценарии:
- Продление с баланса за 24 часа до окончания; денег нет → заказ ждёт → пополнение само оплачивает продление.
- Продление с демо-карты; неуспешное списание → повторы → льготный период.
- Переходы в льготный период и «истёк» с письмами в журнал.
- Параллельные запуски задач не продлевают ключ дважды.
reconcileне находит расхождений.