except Exception as e:
                    print(f"Не удалось отправить сообщение пользователю {user[0]}: {str(e)}")
            bot.reply_to(message, "Сообщение отправлено всем пользователям.")
        else:
            bot.reply_to(message, "Пожалуйста, укажите текст сообщения.")
    else:
        bot.reply_to(message, "У вас нет прав для выполнения этой команды.")

# Команда для просмотра истории пользователя
@bot.message_handler(commands=['history'])
def user_history(message):
    if message.chat.id in admins:
        try:
            user_id = int(message.text.split()[1])
            cursor.execute('SELECT user_message, bot_response, timestamp FROM chat_history WHERE user_id = ?', (user_id,))
            history = cursor.fetchall()
            if history:
                history_text = "\n".join([f"{row[2]} - Вы: {row[0]}\nБот: {row[1]}" for row in history])
                bot.reply_to(message, history_text)
            else:
                bot.reply_to(message, f"Нет истории сообщений для пользователя {user_id}.")
        except IndexError:
            bot.reply_to(message, "Пожалуйста, укажите ID пользователя.")
        except ValueError:
            bot.reply_to(message, "Неверный формат ID пользователя.")
    else:
        bot.reply_to(message, "У вас нет прав для выполнения этой команды.")

# Команда для просмотра статистики пользователя
@bot.message_handler(commands=['user_stats'])
def user_stats(message):
    if message.chat.id in admins:
        try:
            user_id = int(message.text.split()[1])
            cursor.execute('SELECT COUNT(*) FROM chat_history WHERE user_id = ?', (user_id,))
            message_count = cursor.fetchone()[0]
            bot.reply_to(message, f"Пользователь {user_id} отправил {message_count} сообщений.")
        except IndexError:
            bot.reply_to(message, "Пожалуйста, укажите ID пользователя.")
        except ValueError:
            bot.reply_to(message, "Неверный формат ID пользователя.")
    else:
        bot.reply_to(message, "У вас нет прав для выполнения этой команды.")

# Команда для очистки памяти любого пользователя
@bot.message_handler(commands=['admin_clear'])
def admin_clear_memory(message):
    if message.chat.id in admins:
        try:
            user_id = int(message.text.split()[1])
            cursor.execute('DELETE FROM chat_history WHERE user_id = ?', (user_id,))
            db_connection.commit()
            if user_id in chat_context:
                del chat_context[user_id]
            bot.reply_to(message, f"Память пользователя {user_id} очищена, контекст удалён.")
        except IndexError:
            bot.reply_to(message, "Пожалуйста, укажите ID пользователя.")
        except ValueError:
            bot.reply_to(message, "Неверный формат ID пользователя.")
    else:
        bot.reply_to(message, "У вас нет прав для выполнения этой команды.")

@bot.message_handler(commands=['admin'])
def admin_message(message):
    user_id = message.chat.id
    msg = message.text.split(maxsplit=1)

    # Fetch username from the database
    cursor.execute("SELECT username FROM users WHERE user_id = ?", (user_id,))
    user_data = cursor.fetchone()
    username = user_data[0] if user_data else "Unknown User" # Handle case where user isn't in the database

    if len(msg) > 1:
        user_message = f"Пользователь {username}: {msg[1]}"
    else:
        user_message = f"Пользователь {username} обратился к администратору."

    for admin_id in admins:
        try:
            bot.send_message(admin_id, user_message)
        except Exception as e:
            print(f"Не удалось отправить сообщение администратору {admin_id}: {str(e)}")
    bot.reply_to(message, "Ваше сообщение отправлено администратору.")

@bot.message_handler(commands=['clear_all'])
def clear_all_chat_history(message):