Документация: этапы по фазам, решения D-026…D-033

- Новый порядок этапов (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>
This commit is contained in:
andreypr207andClaude Opus 5.5 committed 2026-10-22 03:48:10 +02:00
1 parent 0cad9bae18
commit 515acfb69d
53 files changed
+778 -348

No files matched your search

+39
View File
@@ -0,0 +1,39 @@
# Этап 1e. Счёт и оплата
Статус: не начат.
## 1. Цель
Покупка ключа и пополнение баланса работают целиком на демо-оплате, без эквайринга.
## 2. Входит
1. Коллекции `orders`, `payments`, `ledger-entries`, `payment-methods`.
2. `core/billing`: `processPayment`, оплата с баланса, блокировки и уникальные ограничения ([04-billing.md](../04-billing.md), разделы 1–5 и 14).
3. Платёжная система «Демо» ([D-027](../decisions/D-027-demo-payments.md)): страница демо-оплаты, демо-привязка карты, доступ по списку IP. `manual` — для администраторов.
4. `/order` по макетам обоих брендов: шаг «Почта» (вход из 1c), шаг «Оплата» (с баланса, демо-оплатой, демо-картой; «Заказ создан, ожидает оплаты», если платёжных систем нет), согласие с условиями, сводка из тарифа, локации и валюты.
5. Кабинет:
a. `/buy`: dedicated — сетка локаций с ценами, mass — «Месяц» и «Год»;
b. «Счёт и платежи»: баланс, пополнение (пресеты и своя сумма), привязанная карта и «Отвязать карту», история;
c. смена валюты аккаунта ([04-billing.md](../04-billing.md), раздел 2).
6. После оплаты ключ создаётся в статусе `provisioning` и выдаётся вручную (1d); автоматически — с 1f.
7. Админка: ручной платёж, корректировка баланса, возврат на баланс; всё — в журнал действий.
8. Шаблоны на 5 языках: `order_paid`, `key_provisioning`, `topup_succeeded`, `refund_issued`, `admin_new_order`, `admin_provisioning_needed`.
## 3. Не входит
Продления (1g), реальные платёжные системы (3b, 4a, 4b).
## 4. Перед стартом
Этап 1d готов.
## 5. Готово, когда
1. С разрешённого IP ключ покупается демо-оплатой и с баланса; отказ демо-оплаты виден пользователю.
2. Демо-карта привязывается и отвязывается.
3. Автотесты `core/billing` проходят сценарии:
a. пополнение → оплата заказа с баланса → заказ оплачен → ключ `provisioning`;
b. частичный баланс и оплата разницы → заказ оплачен;
c. частичный и полный возврат на баланс, с отменой ключа и без;
d. повторный `processPayment` не списывает дважды.