$room->branch->id, 'room_id' => $room->id, 'user_id' => Auth::id()?? 0, 'is_online' => $room->is_online, 'status' => $room->status ?? 'error', 'started_at' => $room->started_at, 'ended_at' => $room->ended_at, 'message' => $room->log_message ?? '', 'source' => $this->getSource($room), ]); } /** * Handle the Room "updated" event. */ public function updated(Room $room): void { // 檢查是否有變更狀態 if ($room->wasChanged()) { RoomStatusLog::create([ 'branch_id' => $room->branch->id, 'room_id' => $room->id, 'user_id' => Auth::id() ?? 0, 'is_online' => $room->is_online, 'status' => $room->status, 'started_at' =>$room->started_at, 'ended_at' =>$room->ended_at, 'message' => $room->log_message ?? '', 'source' => $this->getSource($room), ]); } } /** * Handle the Room "deleted" event. */ public function deleted(Room $room): void { $message = sprintf( "%s:%s%s (%s:%s) 已刪除", $room->branch->name, $room->type->value, $room->name, $room->internal_ip, $room->port ); RoomStatusLog::create([ 'branch_id' => $room->branch->id, 'room_id' => $room->id, 'user_id' => Auth::id() ?? 0, 'is_online' => $room->is_online, 'status' => $room->status, 'started_at' =>$room->started_at, 'ended_at' =>$room->ended_at, 'message' => $message, 'source' => $this->getSource($room), ]); } /** * Handle the Room "restored" event. */ public function restored(Room $room): void { // } /** * Handle the Room "force deleted" event. */ public function forceDeleted(Room $room): void { // } private function getSource(Room $room): string { return app()->runningInConsole() ? 'system' : ($room->log_source ?? 'manual'); } }