appId = $appId; } public function isEnabled(): bool { return App::findById($this->appId)->statisticsEnabled; } public function connection() { $this->connections++; $this->peakConnections = max($this->connections, $this->peakConnections); } public function disconnection() { $this->connections--; $this->peakConnections = max($this->connections, $this->peakConnections); } public function webSocketMessage() { $this->webSocketMessageCount++; } public function apiMessage() { $this->apiMessageCount++; } public function reset(int $currentConnectionCount) { $this->connections = $currentConnectionCount; $this->peakConnections = $currentConnectionCount; $this->webSocketMessageCount = 0; $this->apiMessageCount = 0; } public function toArray() { return [ 'app_id' => $this->appId, 'peak_connections' => $this->peakConnections, 'websocket_message_count' => $this->webSocketMessageCount, 'api_message_count' => $this->apiMessageCount, ]; } }