feat(payments): subscription lifecycle, renewal invoices and plan-based write access
メンテナーはふだん 1 日以内に返信
評価
この issue はまだ評価されていません。
説明
Is your feature request related to a problem? Please describe.
With the subscription data model in place, nothing creates or extends a subscription, issues renewal invoices, or ends access when a period lapses. Write access still depends only on the permanent is_admitted flag.
Describe the solution you'd like
- A
SubscriptionServicefor subscribe, renew and status transitions (active → renewal_pending → past_due → expired). PaymentsService.confirmInvoiceextends the subscription period (same transaction as the invoice confirmation). All five confirmation paths (maintenance poll and the Zebedee/LNbits/OpenNode/Nodeless callbacks) already go through it, so the invoice carries itsplan_idinstead of each callback learning about plans.POST /invoicesaccepts a plan id; existing admission behaviour is unchanged when no plans are configured.- A periodic sweep (maintenance worker) that issues renewal invoices before period end and moves overdue subscriptions through grace to expired.
isUserAdmittedchecks for an active subscription, reusing the existing admission cache so there is no extra database read per event.- Tests for each transition, the confirm path, and the cache behaviour.
Additional context
- Design: #673. Renewal is invoice-based: Lightning cannot pull funds, so the relay issues a renewal invoice and the user pays it.
- 主要言語
- TypeScript
- スター
- 829
- フォーク
- 234
- 平均マージ
- 17時間 46分
- マージ済み PR(30日)
- 73
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
cameri/nostream のほかの issue
-
Website
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
Three repositories have no unit tests (notification-outbox, notification-delivery-log, nip05-verification)対応中かも @Priyanshubhartistm が 1 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 72/100
cameri/nostream#905 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
No unit tests for four of six payment processors (nodeless, lnurl, opennode, zebedee)対応中かも @Priyanshubhartistm が 1 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
cameri/nostream#903 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
cameri/nostream#902 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
cameri/nostream の issue をすべて見る
似ている issue
-
ready-for-agent
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
xavxyz/bei-shan-lin-shui#57 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] rag: sentence content can cross the reported sentence boundaries対応中かも @LJK-ikun が今日担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
bug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
README: the Resource URI Schemas example's file://documents/* pattern only matches that literal URIオープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
platformatic/mcp#361 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
siyuan-note/siyuan#20799 · コメント 7 件 ·
メンテナーはふだん 1 日以内に返信