$companyId, 'name' => $name, 'session_key' => $sessionKey, 'status' => 'disconnected' ]); static::clearSessionsCache($companyId); return static::findByCompany($companyId, false); } /** * Update session state securely and clear Redis cache */ public static function updateState(int $id, array $data) { if (isset($data['phone'])) { $data['phone_hash'] = Security::blindIndex($data['phone']); $data['phone'] = Security::encrypt($data['phone']); } if (isset($data['qr_code'])) { $data['qr_code'] = Security::encrypt($data['qr_code']); } $session = Database::selectOne("SELECT company_id FROM " . static::$table . " WHERE id = ? LIMIT 1", [$id]); $result = static::update($id, $data); if ($session && !empty($session['company_id'])) { static::clearSessionsCache((int)$session['company_id']); } return $result; } }