# BotCode/routers/commands/user_cmd/stats_cmd.py
# Работа с командой /stats, для получения информации о себе

from aiogram import types
from BotLibrary import CommandHandler, bot
from SQLite3 import status_user

# Настройки экспорта в модули
__all__ = ("ban_cmd",)

# Функция блокировки пользователя
async def ban_user(message: types.Message, *args, **kwargs):
    status = await status_user(message)
    if status not in ('Пользователь', 'Забаннен'):
        # Проверка, что команда вызвана с упоминанием пользователя
        args = message.text.split()
        if len(args) != 2:
            await message.reply("Пожалуйста, укажите пользователя для бана, например: /ban @username")
            return

        # Получение упомянутого пользователя
        username = args[1]

        # Попытка получить user_id по username
        try:
            user = await bot.get_users(username)
            user_id = user.id

            # Проверка, является ли пользователь участником чата
            member = await bot.get_chat_member(message.chat.id, user_id)

            # Блокировка пользователя
            await bot.kick_chat_member(message.chat.id, user_id)
            await message.reply(f"Пользователь {username} забанен.")
        except Exception as e:
            await message.reply(f"Ошибка: {str(e)}")
    else:
        await message.reply("Вы не являетесь администратором!")


# Создание команды /ban с несколькими медиа
ban_cmd = CommandHandler(
    name="ban",
    description="Блокировка пользователя",
    keywords=["ban", "бан", "banhammer", "ифтрфььук", "ифт"],
    media="command", func=[ban_user],
)
