from telebot import types

from utils import t


def sponsor_keyboard(sponsors, lang: str):
    kb = types.InlineKeyboardMarkup(row_width=1)

    for sponsor in sponsors:
        if sponsor.link:
            title = sponsor.title or "Sponsor"
            kb.add(types.InlineKeyboardButton(f"🔗 {title}", url=sponsor.link))

    kb.add(types.InlineKeyboardButton(t("check_membership", lang), callback_data="sponsor_check"))

    return kb


SETTING_TOGGLES = [
    ("lock_all", "قفل کامل"),
    ("lock_links", "ضد لینک"),
    ("lock_media", "قفل رسانه"),
    ("lock_sticker", "قفل استیکر"),
    ("lock_fosh", "ضد فحش"),
    ("lock_username", "ضد یوزرنیم"),
    ("lock_forward", "ضد فوروارد"),
    ("flood_check", "ضد فلود"),
    ("duplicate_check", "ضد تکرار"),
]


def settings_keyboard(chat_id, settings, lang: str):
    kb = types.InlineKeyboardMarkup(row_width=2)

    for key, label in SETTING_TOGGLES:
        state = "✅" if settings.get_bool(chat_id, key, False) else "❌"
        kb.add(types.InlineKeyboardButton(f"{label}: {state}", callback_data=f"toggle:{key}"))

    return kb


def main_panel_keyboard(role: str):
    kb = types.InlineKeyboardMarkup(row_width=2)

    if role in ("bot_owner", "owner", "admin"):
        kb.add(types.InlineKeyboardButton("⚙️ تنظیمات", callback_data="panel:settings"))

    if role in ("bot_owner", "owner"):
        kb.add(types.InlineKeyboardButton("👮 دسترسی ادمین‌ها", callback_data="panel:permissions_help"))

    if role == "bot_owner":
        kb.add(types.InlineKeyboardButton("📢 اسپانسر‌ها", callback_data="panel:sponsors"))

    kb.add(types.InlineKeyboardButton("ℹ️ راهنما", callback_data="panel:help"))

    return kb