Complete Events–Meet integration phases 2–5.
Deploy Ladill Events / deploy (push) Successful in 41s

Programme sync to Meet rooms, wallet-billed mass comms, webhook lifecycle updates, and registration access bridge with join-window gating on public pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-01 22:31:45 +00:00
co-authored by Cursor
parent 06fedcfc55
commit 05a6be7efe
20 changed files with 798 additions and 115 deletions
+17 -1
View File
@@ -713,20 +713,36 @@
@php
$evFormat = $content['format'] ?? 'in_person';
$evVirtualSessions = collect($content['virtual_sessions'] ?? [])->filter(fn ($s) => is_array($s) && ! empty($s['join_url']));
$meetAccess = app(\App\Services\Meet\EventMeetAccessService::class);
$evVirtualSessions = collect($content['virtual_sessions'] ?? [])
->filter(fn ($s) => is_array($s) && ! empty($s['join_url']));
@endphp
@if(in_array($evFormat, ['virtual', 'hybrid'], true) && $evVirtualSessions->isNotEmpty())
<div class="mt-6 space-y-3">
<h2 class="text-center text-sm font-bold text-slate-900">Virtual sessions</h2>
@foreach($evVirtualSessions as $session)
@php $windowOpen = $meetAccess->isJoinWindowOpen($session); @endphp
@if($windowOpen)
<a href="{{ $session['join_url'] }}" target="_blank" rel="noopener"
class="block rounded-2xl border border-indigo-100 bg-white px-4 py-3 shadow-sm transition hover:border-indigo-300">
<p class="font-semibold text-slate-900">{{ $session['title'] ?? 'Join session' }}</p>
@if(!empty($session['scheduled_at']))
<p class="mt-1 text-xs text-slate-500">{{ \App\Support\Qr\QrDateFormatter::forDisplay($session['scheduled_at']) }}</p>
@endif
@if(($session['meet_status'] ?? '') === 'live')
<p class="mt-1 text-xs font-semibold text-emerald-600">Live now</p>
@endif
<p class="mt-2 text-xs font-semibold text-indigo-600">Join virtual session </p>
</a>
@else
<div class="block rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3">
<p class="font-semibold text-slate-700">{{ $session['title'] ?? 'Virtual session' }}</p>
@if(!empty($session['scheduled_at']))
<p class="mt-1 text-xs text-slate-500">{{ \App\Support\Qr\QrDateFormatter::forDisplay($session['scheduled_at']) }}</p>
@endif
<p class="mt-2 text-xs text-amber-700">Join opens 15 minutes before the session starts.</p>
</div>
@endif
@endforeach
</div>
@endif