Концепции, ценность и типичные сценарии клонирования — меньше кода.
Концепции, ценность и типичные сценарии клонирования — меньше кода.
Preparing Ring content
Preparing Ring content
Preparing Ring content
Используйте вкладки Founder / Developer в боковой панели, чтобы отфильтровать эту страницу. Пользовательские сценарии рендерятся на /membership; эта статья документирует уровни, цены и платёжные рейки.
Членство — как клон Ring различает уровни сообщества и монетизирует доступ. Лестница ролей — SSOT (features/auth/user-role.ts), ценообразование апгрейда управляется конфигом (lib/membership/pricing.ts), и каждый платёж — карта, кредитный баланс, PayPal или нативный токен — проходит через PaymentConductor.
| Role | Meaning |
|---|---|
visitor | Не аутентифицирован, только просмотр |
subscriber | Платный базовый подписчик — базовый доступ к сообществу |
member | Повышенный статус с более широким доступом |
confidential | Доступ к конфиденциальным ресурсам |
admin | Админ платформы |
superadmin | Админ платформы высшего уровня |
Апгрейды переводят пользователя из subscriber → member. Конфиг уровня confidential явно требует роль confidential.
membership.ring.memberUpgradeAmount), годовой даёт 20% скидки от monthly × 12, а живые котировки идут через desk oracle, чтобы сумма счёта совпадала с котировкой.MEMBERSHIP_DESK_CREDIT_HINT_MIN) UI подсказывает обмен на Token Desk вместо покупки кредита.membership.ring и конфиг уровня member в ring-config.json.Deep-dive: кредитный реестр и двухставочный SSOT, в который оседают платежи за членство.
Depends-on: карта, PayPal и токен-рейки все идут через PaymentConductor.
Same-workflow: жизненный цикл продления и обработка отмены.
See-also: как credit_balance и реестр подписок живут в JSONB-схеме.
Используйте вкладки Founder / Developer в боковой панели, чтобы отфильтровать эту страницу. Пользовательские сценарии рендерятся на /membership; эта статья документирует уровни, цены и платёжные рейки.
Членство — как клон Ring различает уровни сообщества и монетизирует доступ. Лестница ролей — SSOT (features/auth/user-role.ts), ценообразование апгрейда управляется конфигом (lib/membership/pricing.ts), и каждый платёж — карта, кредитный баланс, PayPal или нативный токен — проходит через PaymentConductor.
| Role | Meaning |
|---|---|
visitor | Не аутентифицирован, только просмотр |
subscriber | Платный базовый подписчик — базовый доступ к сообществу |
member | Повышенный статус с более широким доступом |
confidential | Доступ к конфиденциальным ресурсам |
admin | Админ платформы |
superadmin | Админ платформы высшего уровня |
Апгрейды переводят пользователя из subscriber → member. Конфиг уровня confidential явно требует роль confidential.
membership.ring.memberUpgradeAmount), годовой даёт 20% скидки от monthly × 12, а живые котировки идут через desk oracle, чтобы сумма счёта совпадала с котировкой.MEMBERSHIP_DESK_CREDIT_HINT_MIN) UI подсказывает обмен на Token Desk вместо покупки кредита.membership.ring и конфиг уровня member в ring-config.json.Deep-dive: кредитный реестр и двухставочный SSOT, в который оседают платежи за членство.
Depends-on: карта, PayPal и токен-рейки все идут через PaymentConductor.
Same-workflow: жизненный цикл продления и обработка отмены.
See-also: как credit_balance и реестр подписок живут в JSONB-схеме.
Используйте вкладки Founder / Developer в боковой панели, чтобы отфильтровать эту страницу. Пользовательские сценарии рендерятся на /membership; эта статья документирует уровни, цены и платёжные рейки.
Членство — как клон Ring различает уровни сообщества и монетизирует доступ. Лестница ролей — SSOT (features/auth/user-role.ts), ценообразование апгрейда управляется конфигом (lib/membership/pricing.ts), и каждый платёж — карта, кредитный баланс, PayPal или нативный токен — проходит через PaymentConductor.
| Role | Meaning |
|---|---|
visitor | Не аутентифицирован, только просмотр |
subscriber | Платный базовый подписчик — базовый доступ к сообществу |
member | Повышенный статус с более широким доступом |
confidential | Доступ к конфиденциальным ресурсам |
admin | Админ платформы |
superadmin | Админ платформы высшего уровня |
Апгрейды переводят пользователя из subscriber → member. Конфиг уровня confidential явно требует роль confidential.
membership.ring.memberUpgradeAmount), годовой даёт 20% скидки от monthly × 12, а живые котировки идут через desk oracle, чтобы сумма счёта совпадала с котировкой.MEMBERSHIP_DESK_CREDIT_HINT_MIN) UI подсказывает обмен на Token Desk вместо покупки кредита.membership.ring и конфиг уровня member в ring-config.json.Deep-dive: кредитный реестр и двухставочный SSOT, в который оседают платежи за членство.
Depends-on: карта, PayPal и токен-рейки все идут через PaymentConductor.
Same-workflow: жизненный цикл продления и обработка отмены.
See-also: как credit_balance и реестр подписок живут в JSONB-схеме.
| Methods |
|---|
| Purpose |
|---|
/api/membership/payment/card | POST, GET | Карточный checkout для членства |
/api/membership/payment/credit | POST, GET | Путь оплаты с кредитного баланса |
/api/membership/payment/paypal | POST, GET | Checkout через PayPal |
/api/membership/payment/token | POST, GET | Оплата нативным токеном |
/api/membership/subscription/create | POST | Создать подписку |
/api/membership/subscription/status | GET | Прочитать статус подписки |
/api/membership/subscription/cancel | POST, GET | Отменить подписку |
Куда попадают деньги
Платные апгрейды пишутся в реестр подписок (subscription_ledger) — провайдер credit_balance помечает продления, оплаченные кредитом (next_payment_due индексируется в data/schema.sql). Сам кредит живёт в записи пользователя (users.data.credit_balance), а wallet-транзакции служат аудитом (features/wallet/services/credit-balance-service.ts).
Биллинговые периоды
MembershipBillingPeriod = 'monthly' | 'yearly'. Годовая стоимость = annualUpgradeAmount, если задано, иначе monthly × 12 × 0.8 (скидка 20%). Форма уровня: MemberTierConfig { amount, currency, description, duration }.
| Methods |
|---|
| Purpose |
|---|
/api/membership/payment/card | POST, GET | Карточный checkout для членства |
/api/membership/payment/credit | POST, GET | Путь оплаты с кредитного баланса |
/api/membership/payment/paypal | POST, GET | Checkout через PayPal |
/api/membership/payment/token | POST, GET | Оплата нативным токеном |
/api/membership/subscription/create | POST | Создать подписку |
/api/membership/subscription/status | GET | Прочитать статус подписки |
/api/membership/subscription/cancel | POST, GET | Отменить подписку |
Куда попадают деньги
Платные апгрейды пишутся в реестр подписок (subscription_ledger) — провайдер credit_balance помечает продления, оплаченные кредитом (next_payment_due индексируется в data/schema.sql). Сам кредит живёт в записи пользователя (users.data.credit_balance), а wallet-транзакции служат аудитом (features/wallet/services/credit-balance-service.ts).
Биллинговые периоды
MembershipBillingPeriod = 'monthly' | 'yearly'. Годовая стоимость = annualUpgradeAmount, если задано, иначе monthly × 12 × 0.8 (скидка 20%). Форма уровня: MemberTierConfig { amount, currency, description, duration }.
| Methods |
|---|
| Purpose |
|---|
/api/membership/payment/card | POST, GET | Карточный checkout для членства |
/api/membership/payment/credit | POST, GET | Путь оплаты с кредитного баланса |
/api/membership/payment/paypal | POST, GET | Checkout через PayPal |
/api/membership/payment/token | POST, GET | Оплата нативным токеном |
/api/membership/subscription/create | POST | Создать подписку |
/api/membership/subscription/status | GET | Прочитать статус подписки |
/api/membership/subscription/cancel | POST, GET | Отменить подписку |
Куда попадают деньги
Платные апгрейды пишутся в реестр подписок (subscription_ledger) — провайдер credit_balance помечает продления, оплаченные кредитом (next_payment_due индексируется в data/schema.sql). Сам кредит живёт в записи пользователя (users.data.credit_balance), а wallet-транзакции служат аудитом (features/wallet/services/credit-balance-service.ts).
Биллинговые периоды
MembershipBillingPeriod = 'monthly' | 'yearly'. Годовая стоимость = annualUpgradeAmount, если задано, иначе monthly × 12 × 0.8 (скидка 20%). Форма уровня: MemberTierConfig { amount, currency, description, duration }.