Add virtual event sessions with Meet sync and platform-billed messaging.
Deploy Ladill Events / deploy (push) Successful in 41s
Deploy Ladill Events / deploy (push) Successful in 41s
Events can define hybrid/virtual sessions synced to Meet rooms; SMS and email use wallet-billed platform APIs instead of Termii and Laravel mail. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -252,6 +252,11 @@ class EventRegistrationService
|
||||
return;
|
||||
}
|
||||
|
||||
$ownerPublicId = (string) $registration->qrCode?->user?->public_id;
|
||||
if ($ownerPublicId === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
$content = $registration->qrCode?->content() ?? [];
|
||||
$eventName = $content['name'] ?? $registration->qrCode?->label ?? config('app.name');
|
||||
$firstName = explode(' ', $registration->attendee_name)[0];
|
||||
@@ -276,7 +281,38 @@ class EventRegistrationService
|
||||
);
|
||||
}
|
||||
|
||||
$this->sms->send($registration->attendee_phone, $message);
|
||||
$joinUrl = $this->nextVirtualJoinUrl($content);
|
||||
if ($joinUrl !== '') {
|
||||
$message .= ' Join: '.$joinUrl;
|
||||
}
|
||||
|
||||
$this->sms->send(
|
||||
$ownerPublicId,
|
||||
$registration->attendee_phone,
|
||||
$message,
|
||||
);
|
||||
}
|
||||
|
||||
/** @param array<string, mixed> $content */
|
||||
private function nextVirtualJoinUrl(array $content): string
|
||||
{
|
||||
$format = (string) ($content['format'] ?? 'in_person');
|
||||
if (! in_array($format, ['virtual', 'hybrid'], true)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
foreach ((array) ($content['virtual_sessions'] ?? []) as $session) {
|
||||
if (! is_array($session)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$joinUrl = trim((string) ($session['join_url'] ?? ''));
|
||||
if ($joinUrl !== '') {
|
||||
return $joinUrl;
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
private function uniqueBadgeCode(): string
|
||||
|
||||
Reference in New Issue
Block a user