feat(packages): implement package-based business model
This commit is contained in:
@@ -11,7 +11,7 @@ Die Tenant Admin App muss folgende Kernfunktionen bereitstellen:
|
||||
- **Member-Management**: Hinzufügen/Entfernen von Event-Mitgliedern; Rollen (Admin, Member).
|
||||
- **Task & Emotion Management**: Zuweisen von Tasks und Emotions zu Events; Overrides für Tenant-spezifische Bibliotheken.
|
||||
- **Settings-Management**: Tenant-spezifische Einstellungen (Theme, Limits, Legal Pages).
|
||||
- **Billing & Purchases**: Kaufen von Event-Credits; Ledger-Übersicht; Integration mit Stripe.
|
||||
- **Billing & Purchases**: Kaufen von Packages (pro Event oder Tenant); Ledger-Übersicht; Integration mit Stripe.
|
||||
- **Notifications**: Push-Benachrichtigungen für neue Photos, Event-Updates, niedrigen Credit-Balance.
|
||||
- **Offline-Support**: Caching von Events und Photos; Queuing von Uploads/Mutations mit Sync bei Online-Wiederkehr.
|
||||
- **Audit & Compliance**: Logging kritischer Aktionen; ETag-basierte Conflict-Resolution; GDPR-konforme Datenlöschung.
|
||||
@@ -27,7 +27,7 @@ Die App ist API-first und interagiert ausschließlich über den Backend-API-Endp
|
||||
|
||||
### Core Features
|
||||
- **Event Lifecycle**:
|
||||
- Erstellen: Erfordert mind. 1 Event-Credit; Slug-Generierung (unique pro Tenant).
|
||||
- Erstellen: Erfordert Package-Auswahl (Free oder Kauf); Slug-Generierung (unique pro Tenant).
|
||||
- Bearbeiten: Update von Datum, Ort, Tasks, Emotions, Join-Link.
|
||||
- Veröffentlichen: Generiert QR-Code und Share-Link; aktiviert Guest-PWA-Zugriff.
|
||||
- Archivieren: Soft-Delete mit Retention-Periode (GDPR); Credit-Rückerstattung optional.
|
||||
@@ -39,8 +39,8 @@ Die App ist API-first und interagiert ausschließlich über den Backend-API-Endp
|
||||
- Bibliothek: Globale + Tenant-spezifische Tasks/Emotions.
|
||||
- Zuweisung: Drag-and-Drop zu Events; Fortschritts-Tracking.
|
||||
- **Billing Integration**:
|
||||
- Credit-Balance: Anzeige und Kauf von Packs (z.B. 5 Events für 29€).
|
||||
- Ledger: Historie von Käufen, Consumptions, Refunds.
|
||||
- Package-Auswahl: Anzeige verfügbarer Packages und Kauf (Einmalkauf/Subscription).
|
||||
- Ledger: Historie von Package-Käufen und Nutzung.
|
||||
- Stripe-Checkout: Server-side Intent-Erstellung; Webhook-Handling für Confirmation.
|
||||
|
||||
### Offline & Sync
|
||||
@@ -62,8 +62,8 @@ Die App konsumiert den API-Contract aus docs/prp/03-api.md. Schlüssel-Endpunkte
|
||||
|
||||
### Events
|
||||
- `GET /tenant/events`: Liste (paginiert, filterbar nach Status/Datum).
|
||||
- `POST /tenant/events`: Erstellen (validiert Credit-Balance).
|
||||
- `GET /tenant/events/{id}`: Details inkl. Tasks, Stats.
|
||||
- `POST /tenant/events`: Erstellen (validiert Tenant-Package und erstellt Event-Package).
|
||||
- `GET /tenant/events/{id}`: Details inkl. Tasks, Stats, package_limits.
|
||||
- `PATCH /tenant/events/{id}`: Update (ETag für Concurrency).
|
||||
- `DELETE /tenant/events/{id}`: Archivieren.
|
||||
|
||||
@@ -83,13 +83,13 @@ Die App konsumiert den API-Contract aus docs/prp/03-api.md. Schlüssel-Endpunkte
|
||||
- `PATCH /tenant/settings`: Update.
|
||||
|
||||
### Billing
|
||||
- `GET /tenant/ledger`: Credit-Historie.
|
||||
- `POST /tenant/purchases/intent`: Stripe-Checkout-Session erstellen.
|
||||
- `GET /tenant/credits/balance`: Aktueller Stand.
|
||||
- `GET /tenant/packages`: Tenant-Packages und Limits.
|
||||
- `POST /tenant/purchases/intent`: Stripe-Checkout-Session für Package erstellen.
|
||||
- `GET /api/v1/packages`: Verfügbare Packages.
|
||||
|
||||
### Pagination & Errors
|
||||
- Standard: `page`, `per_page` (max 50 für Mobile).
|
||||
- Errors: Parsen von `{ error: { code, message } }`; User-freundliche Messages (z.B. "Nicht genug Credits").
|
||||
- Errors: Parsen von `{ error: { code, message } }`; User-freundliche Messages (z.B. "Package-Limit überschritten").
|
||||
|
||||
## Non-Functional Requirements
|
||||
- **Performance**: Ladezeiten < 2s; Lazy-Loading für Galleries.
|
||||
|
||||
Reference in New Issue
Block a user