Extend service API for Events and fix panel layout reverting during edit.
Deploy Ladill Meet / deploy (push) Successful in 48s

Service rooms support town_hall/webinar types with source lookup, update, and cancel; stage poll no longer overwrites layout while the modal is open.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-01 22:08:01 +00:00
co-authored by Cursor
parent d0b6e9ff01
commit c108514b27
8 changed files with 347 additions and 51 deletions
+31 -1
View File
@@ -49,7 +49,7 @@ class RoomService
'owner_ref' => $ownerRef,
'organization_id' => $organization->id,
'branch_id' => $data['branch_id'] ?? null,
'host_user_ref' => $ownerRef,
'host_user_ref' => $data['host_user_ref'] ?? $ownerRef,
'title' => $data['title'],
'description' => $data['description'] ?? null,
'type' => $data['type'] ?? 'instant',
@@ -70,6 +70,36 @@ class RoomService
return $room;
}
/**
* @param array<string, mixed> $data
*/
public function update(Room $room, array $data, ?User $host = null): Room
{
$settings = isset($data['settings'])
? array_merge($room->settings ?? [], $data['settings'])
: $room->settings;
$room->update(array_filter([
'title' => $data['title'] ?? null,
'description' => array_key_exists('description', $data) ? $data['description'] : null,
'scheduled_at' => $data['scheduled_at'] ?? null,
'duration_minutes' => $data['duration_minutes'] ?? null,
'timezone' => $data['timezone'] ?? null,
'passcode' => array_key_exists('passcode', $data) ? ($data['passcode'] !== null ? (string) $data['passcode'] : null) : null,
'settings' => $settings,
'source' => $data['source'] ?? null,
'host_user_ref' => $data['host_user_ref'] ?? null,
], fn ($value) => $value !== null));
AuditLogger::record($room->owner_ref, 'room.updated', $room->organization_id, $room->host_user_ref, Room::class, $room->id);
if ($host && $room->scheduled_at) {
app(CalendarService::class)->syncRoomCreated($room->fresh(), $host);
}
return $room->fresh();
}
public function ensurePersonalRoom(User $user, Organization $organization): Room
{
$ownerRef = $user->ownerRef();