Implement package limit notification system

This commit is contained in:
Codex Agent
2025-11-01 13:19:07 +01:00
parent 81cdee428e
commit 2c14493604
87 changed files with 4557 additions and 290 deletions

View File

@@ -56,4 +56,77 @@ return [
'body' => 'Vielen Dank für Ihre Nachricht an das Fotospiel-Team. Wir melden uns so schnell wie möglich zurück.',
'footer' => 'Viele Grüße<br>Ihr Fotospiel-Team',
],
'package_limits' => [
'team_fallback' => 'Ihr Fotospiel-Team',
'package_fallback' => 'Aktuelles Paket',
'event_fallback' => 'Ihr Event',
'photo_threshold' => [
'subject' => 'Event „:event“ hat :percentage% des Foto-Kontingents erreicht',
'greeting' => 'Hallo :name,',
'body' => 'Ihr Paket „:package“ für das Event „:event“ liegt bei :percentage% des Foto-Kontingents (:used von :limit Fotos). Es bleiben nur noch :remaining Uploads, bevor das Limit erreicht ist.',
'action' => 'Event-Dashboard öffnen',
],
'photo_limit' => [
'subject' => 'Foto-Uploads für „:event“ sind aktuell blockiert',
'greeting' => 'Hallo :name,',
'body' => 'Das Paket „:package“ für das Event „:event“ hat das Maximum von :limit Fotos erreicht. Gäste können keine neuen Fotos hochladen, bis Sie das Paket upgraden.',
'action' => 'Paket verwalten oder upgraden',
],
'guest_threshold' => [
'subject' => 'Event „:event“ hat :percentage% des Gäste-Kontingents erreicht',
'greeting' => 'Hallo :name,',
'body' => 'Ihr Paket „:package“ für das Event „:event“ liegt bei :percentage% des Gäste-Kontingents (:used von :limit Gäste). Es bleiben nur noch :remaining Plätze, bevor das Limit erreicht ist.',
'action' => 'Event-Dashboard öffnen',
],
'guest_limit' => [
'subject' => 'Gästekontingent für „:event“ ist ausgeschöpft',
'greeting' => 'Hallo :name,',
'body' => 'Das Paket „:package“ für das Event „:event“ hat das Maximum von :limit Gästen erreicht. Neue Gästelinks können erst nach einem Upgrade erstellt werden.',
'action' => 'Paket verwalten oder upgraden',
],
'event_threshold' => [
'subject' => 'Paket „:package“ liegt bei :percentage% des Event-Kontingents',
'greeting' => 'Hallo :name,',
'body' => 'Ihr Paket „:package“ hat :percentage% des Event-Kontingents erreicht (:used von :limit Events). Es bleiben nur noch :remaining Events.',
'action' => 'Pakete überprüfen',
],
'event_limit' => [
'subject' => 'Paket „:package“ hat das Event-Kontingent ausgeschöpft',
'greeting' => 'Hallo :name,',
'body' => 'Ihr Paket „:package“ hat das Maximum von :limit Events erreicht. Bitte upgraden oder verlängern Sie, um weitere Events zu erstellen.',
'action' => 'Paket upgraden',
],
'gallery_warning' => [
'subject' => 'Galerie für „:event“ läuft in :days Tag ab|Galerie für „:event“ läuft in :days Tagen ab',
'greeting' => 'Hallo :name,',
'body' => 'Die Galerie für das Event „:event“ (Paket „:package“) läuft am :date ab. Es bleibt nur noch :days Tag Zugriff.|Die Galerie für das Event „:event“ (Paket „:package“) läuft am :date ab. Es bleiben nur noch :days Tage Zugriff.',
'action' => 'Galerie-Einstellungen öffnen',
],
'gallery_expired' => [
'subject' => 'Galerie für „:event“ ist abgelaufen',
'greeting' => 'Hallo :name,',
'body' => 'Die Galerie für das Event „:event“ (Paket „:package“) ist am :date abgelaufen. Gäste können keine Fotos mehr ansehen oder laden, bis Sie die Galerie verlängern.',
'action' => 'Galerie verwalten',
],
'package_expiring' => [
'subject' => 'Paket „:package“ läuft in :days Tag ab|Paket „:package“ läuft in :days Tagen ab',
'greeting' => 'Hallo :name,',
'body' => 'Ihr Paket „:package“ endet am :date. Es bleibt nur noch :days Tag Laufzeit.|Ihr Paket „:package“ endet am :date. Es bleiben nur noch :days Tage Laufzeit.',
'action' => 'Paket verlängern oder upgraden',
],
'package_expired' => [
'subject' => 'Paket „:package“ ist abgelaufen',
'greeting' => 'Hallo :name,',
'body' => 'Ihr Paket „:package“ ist am :date abgelaufen. Bitte verlängern oder upgraden Sie, um weitere Events zu erstellen.',
'action' => 'Pakete verwalten',
],
'credits_low' => [
'subject' => 'Event-Credits werden knapp',
'greeting' => 'Hallo :name,',
'body' => 'Ihr Tenant hat nur noch :balance Credits (Schwelle: :threshold). Bitte kaufe weitere Credits oder upgrade dein Paket.',
'action' => 'Credits kaufen oder Paket upgraden',
],
'footer' => 'Viele Grüße<br>Ihr Fotospiel-Team',
],
];

View File

@@ -56,4 +56,77 @@ return [
'body' => 'Thank you for your message to the Fotospiel team. We will get back to you as soon as possible.',
'footer' => 'Best regards,<br>The Fotospiel Team',
],
'package_limits' => [
'team_fallback' => 'Fotospiel Team',
'package_fallback' => 'Current Package',
'event_fallback' => 'Your event',
'photo_threshold' => [
'subject' => 'Event ":event" has used :percentage% of its photo allowance',
'greeting' => 'Hello :name,',
'body' => 'Your package ":package" for event ":event" has reached :percentage% of its photo allowance (:used / :limit photos). Only :remaining uploads remain before the limit is reached.',
'action' => 'Open event dashboard',
],
'photo_limit' => [
'subject' => 'Photo uploads for ":event" are currently blocked',
'greeting' => 'Hello :name,',
'body' => 'The package ":package" for event ":event" has reached its maximum of :limit photos. Guests can no longer upload new photos until you upgrade the package.',
'action' => 'Upgrade or manage package',
],
'guest_threshold' => [
'subject' => 'Event ":event" has used :percentage% of its guest allowance',
'greeting' => 'Hello :name,',
'body' => 'Your package ":package" for event ":event" has reached :percentage% of its guest allowance (:used / :limit guests). Only :remaining guest slots remain.',
'action' => 'Open event dashboard',
],
'guest_limit' => [
'subject' => 'Guest slots for ":event" are currently exhausted',
'greeting' => 'Hello :name,',
'body' => 'The package ":package" for event ":event" has reached its maximum of :limit guests. New guest invites cannot be created until you upgrade the package.',
'action' => 'Upgrade or manage package',
],
'event_threshold' => [
'subject' => 'Package ":package" has used :percentage% of its event allowance',
'greeting' => 'Hello :name,',
'body' => 'Your package ":package" has reached :percentage% of its event allowance (:used / :limit events). Only :remaining event slots remain.',
'action' => 'Review packages',
],
'event_limit' => [
'subject' => 'Package ":package" event quota exhausted',
'greeting' => 'Hello :name,',
'body' => 'Your package ":package" has reached its maximum of :limit events. Please upgrade or renew to create additional events.',
'action' => 'Upgrade package',
],
'gallery_warning' => [
'subject' => 'Gallery for ":event" expires in :days day|Gallery for ":event" expires in :days days',
'greeting' => 'Hello :name,',
'body' => 'The gallery for event ":event" (package ":package") expires on :date. Only :days day of access remains.|The gallery for event ":event" (package ":package") expires on :date. Only :days days of access remain.',
'action' => 'View gallery settings',
],
'gallery_expired' => [
'subject' => 'Gallery for ":event" has expired',
'greeting' => 'Hello :name,',
'body' => 'The gallery for event ":event" (package ":package") expired on :date. Guests can no longer view or download photos until you extend the gallery duration.',
'action' => 'Manage gallery settings',
],
'package_expiring' => [
'subject' => 'Package ":package" expires in :days day|Package ":package" expires in :days days',
'greeting' => 'Hello :name,',
'body' => 'Your package ":package" expires on :date. Only :days day of access remains.|Your package ":package" expires on :date. Only :days days of access remain.',
'action' => 'Renew or upgrade package',
],
'package_expired' => [
'subject' => 'Package ":package" has expired',
'greeting' => 'Hello :name,',
'body' => 'Your package ":package" expired on :date. Please renew or upgrade to continue creating events.',
'action' => 'Manage packages',
],
'credits_low' => [
'subject' => 'Event credits are running low',
'greeting' => 'Hello :name,',
'body' => 'Your tenant has only :balance credits remaining (threshold: :threshold). Purchase additional credits or upgrade your package to keep creating events.',
'action' => 'Buy credits or upgrade',
],
'footer' => 'Best regards,<br>The Fotospiel Team',
],
];