from aiogram import Router, F
from aiogram.filters import Command
from aiogram.types import Message

from keyboards.main_menu import get_main_menu
from services.api_client import api_client

router = Router()


@router.message(Command("unlink"))
async def cmd_unlink(message: Message):
    """Handle /unlink command to disconnect Telegram account."""
    user = await api_client.get_user_by_telegram_id(message.from_user.id)

    if not user:
        await message.answer(
            "Твой аккаунт не привязан к Game Marathon.\n"
            "Привяжи его через настройки профиля на сайте.",
            reply_markup=get_main_menu()
        )
        return

    result = await api_client.unlink_telegram(message.from_user.id)

    if result.get("success"):
        await message.answer(
            "<b>Аккаунт отвязан</b>\n\n"
            "Ты больше не будешь получать уведомления.\n"
            "Чтобы привязать аккаунт снова, используй кнопку в настройках профиля на сайте.",
            reply_markup=get_main_menu()
        )
    else:
        await message.answer(
            "Произошла ошибка при отвязке аккаунта.\n"
            "Попробуй позже или обратись к администратору.",
            reply_markup=get_main_menu()
        )


@router.message(Command("status"))
async def cmd_status(message: Message):
    """Check account link status."""
    user = await api_client.get_user_by_telegram_id(message.from_user.id)

    if user:
        await message.answer(
            f"<b>Статус аккаунта</b>\n\n"
            f"✅ Аккаунт привязан\n"
            f"👤 Никнейм: <b>{user.get('nickname', 'N/A')}</b>\n"
            f"🆔 ID: {user.get('id', 'N/A')}",
            reply_markup=get_main_menu()
        )
    else:
        await message.answer(
            "<b>Статус аккаунта</b>\n\n"
            "❌ Аккаунт не привязан\n\n"
            "Привяжи его через настройки профиля на сайте.",
            reply_markup=get_main_menu()
        )
