source ?? []); return ($source['app'] ?? '') === 'events' && (int) ($source['event_id'] ?? 0) > 0; } public static function eventId(Room $room): ?int { if (! self::isLinked($room)) { return null; } return (int) ((array) ($room->source ?? []))['event_id']; } public static function baseUrl(): string { return rtrim((string) config('meet.events_app_url', 'https://events.ladill.com'), '/'); } public static function eventAdminUrl(Room $room): ?string { $eventId = self::eventId($room); return $eventId ? self::baseUrl().'/events/'.$eventId.'/attendees' : null; } public static function eventEditUrl(Room $room): ?string { $eventId = self::eventId($room); return $eventId ? self::baseUrl().'/events/'.$eventId : null; } public static function eventRegistrationUrl(Room $room): ?string { $source = (array) ($room->source ?? []); $stored = trim((string) ($source['registration_url'] ?? '')); if ($stored !== '') { return $stored; } $eventId = self::eventId($room); return $eventId ? self::baseUrl().'/q/'.($source['short_code'] ?? '') : null; } public static function eventQrUrl(Room $room): ?string { $eventId = self::eventId($room); return $eventId ? self::baseUrl().'/events/'.$eventId.'/download/png' : null; } public static function eventCommsUrl(Room $room): ?string { $eventId = self::eventId($room); return $eventId ? self::baseUrl().'/events/'.$eventId.'/attendees/comms-preview' : null; } public static function eventBadgesUrl(Room $room): ?string { $eventId = self::eventId($room); return $eventId ? self::baseUrl().'/events/'.$eventId.'/badges' : null; } /** @return array */ public static function urls(Room $room): array { return [ 'admin' => self::eventAdminUrl($room), 'edit' => self::eventEditUrl($room), 'registration' => self::eventRegistrationUrl($room), 'qr' => self::eventQrUrl($room), 'comms' => self::eventCommsUrl($room), 'badges' => self::eventBadgesUrl($room), ]; } public static function eventTitle(Room $room): ?string { if (! self::isLinked($room)) { return null; } $title = trim((string) (((array) ($room->source ?? []))['event_title'] ?? '')); return $title !== '' ? $title : null; } }