feat(payments): subscription data model and plan settings
Les mainteneurs répondent en général sous 1 jour
Évaluation
Cette issue n'a pas encore été évaluée.
Description
Is your feature request related to a problem? Please describe.
Admission is a one-time boolean (users.is_admitted). There is nowhere to record a paid period, a plan, or when access ends, so recurring billing and tiered access (#673) cannot be built. This is the first, behaviour-neutral step.
Describe the solution you'd like
- A
user_subscriptionstable (pubkey, plan id, status, period start/end, grace end, cancel-at-period-end) and theinvoicescolumnsplan_id,period_start,period_end, via a migration. A subscription is keyed by pubkey, so no separate subscription id is needed. payments.subscriptionPlans[]in settings (id, price, interval, grace period, per-plan limits), with types, defaults (empty list), validation invalidateSettings, andCONFIGURATION.mddocs.IUserSubscriptionRepository(find by pubkey, upsert, list due for renewal/expiry) and the invoice repository/Invoicetype changes, with unit tests.- The migration grandfathers every existing
is_admitteduser onto a non-expiring plan so enabling plans later never locks anyone out. - No change to runtime behaviour: with no plans configured the relay behaves exactly as today.
Additional context
- Design: #673. Earlier groundwork for the same layer.
- Langage dominant
- TypeScript
- Étoiles
- 829
- Forks
- 234
- Merge moyen
- 18 h 43 min
- PR mergées (30 j)
- 67
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cameri/nostream
-
Website
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Les mainteneurs répondent en général sous 1 jour
-
Replace the community relay-setup guides with a first-party step-by-step guide on the websiteOuvertedocumentation Website
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
Les mainteneurs répondent en général sous 1 jour
-
fix(website): update operator console film with fresh notifications screenshotPeut-être pris @Ferryx349 l’a pris aujourd’hui. Ouvertebug Website
cameri/nostream#893 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de cameri/nostream
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
Pet submission: Sleepwing / 眠翼鸟Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
OpenPetsHQ/openpets#273 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
fritzprix/libr-agent#2161 ·
Les mainteneurs répondent en général sous 1 jour
-
macOS: clicking a menu item that has a submenu closes the menu instead of opening the submenuOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
blackboardsh/electrobun#581 ·
-
backlog-skill effort:xs frontend infra ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
LucasSantana-Dev/Lucky#2862 ·
Les mainteneurs répondent en général sous 1 jour