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

@@ -58,6 +58,25 @@ class EventJoinTokenService
public function incrementUsage(EventJoinToken $joinToken): void
{
$joinToken->increment('usage_count');
$event = $joinToken->event()
->with(['eventPackage.package', 'eventPackages.package', 'tenant'])
->first();
if ($event && $event->tenant) {
$usageTracker = app(\App\Services\Packages\PackageUsageTracker::class);
$limitEvaluator = app(\App\Services\Packages\PackageLimitEvaluator::class);
$eventPackage = $limitEvaluator->resolveEventPackageForPhotoUpload($event->tenant, $event->id, $event);
if ($eventPackage && $eventPackage->package?->max_guests !== null) {
$previous = (int) $eventPackage->used_guests;
$eventPackage->increment('used_guests');
$eventPackage->refresh();
$usageTracker->recordGuestUsage($eventPackage, $previous, 1);
}
}
}
public function findToken(string $token, bool $includeInactive = false): ?EventJoinToken