"""Referral handlers."""

from aiogram import Router, F
from aiogram.types import CallbackQuery

from database import get_user_by_telegram_id, get_referral_count_for_user
from keyboards.user import get_referral_keyboard


router = Router()


@router.callback_query(F.data == "referral")
async def show_referral(callback: CallbackQuery):
    """Show user's referral link."""
    user = await get_user_by_telegram_id(callback.from_user.id)
    if not user:
        await callback.answer("❌ خطایی رخ داده است.", show_alert=True)
        return

    referral_code = user.get("referral_code", "")
    bot_username = (await callback.bot.get_me()).username

    referral_text = f"""
👥 دعوت دوستان

لینک دعوت اختصاصی شما:
https://t.me/{bot_username}?start={referral_code}

برای هر کاربری که با این لینک عضو شود و ثبت نام کند، +2 امتیاز دریافت می‌کنید.
"""

    await callback.message.edit_text(
        referral_text,
        reply_markup=get_referral_keyboard(referral_code, bot_username)
    )
    await callback.answer()