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' => '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',
],
];