Add virtual event sessions with Meet sync and platform-billed messaging.
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:
isaacclad
2026-07-01 22:08:09 +00:00
co-authored by Cursor
parent 5a8a462102
commit 06fedcfc55
18 changed files with 735 additions and 30 deletions
@@ -5,18 +5,20 @@ namespace App\Http\Controllers\Events;
use App\Http\Controllers\Controller;
use App\Models\QrCode;
use App\Models\QrEventRegistration;
use App\Notifications\EventProgrammeSharedNotification;
use App\Services\Billing\SmsService;
use App\Services\Events\EventEmailService;
use App\Support\Events\EventBadgeZpl;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Notification;
use Illuminate\View\View;
class AttendeeController extends Controller
{
public function __construct(private readonly SmsService $sms) {}
public function __construct(
private readonly SmsService $sms,
private readonly EventEmailService $email,
) {}
public function hub(Request $request): View
{
@@ -163,13 +165,19 @@ class AttendeeController extends Controller
foreach ($recipients as $reg) {
if ($reg->attendee_email) {
Notification::route('mail', $reg->attendee_email)
->notify(new EventProgrammeSharedNotification($event, $programme, $reg->attendee_name));
$this->email->sendProgrammeShare(
(string) $event->user->public_id,
$reg->attendee_email,
$eventName,
$programmeUrl,
$reg->attendee_name,
);
$emailed++;
}
if ($reg->attendee_phone) {
$this->sms->send(
(string) $event->user->public_id,
$reg->attendee_phone,
sprintf(
'Hi %s, the programme for %s is here: %s',