"""Captcha for new members."""
from __future__ import annotations

from telegram import Update
from telegram.constants import ParseMode
from telegram.ext import CommandHandler, ContextTypes

from bot import db
from bot.decorators import admin_only
from bot.persian_router import register_mixed


@admin_only
async def captcha_cmd(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    args = (update.message.text or "").split()
    chat_id = update.effective_chat.id
    if len(args) < 2:
        cur = await db.get_setting(chat_id, "captcha_enabled", False)
        state = "فعال" if cur else "غیرفعال"
        await update.message.reply_text(
            f"🧩 کپچا: {state}\n\nبرای تغییر: <code>/captcha on/off</code>",
            parse_mode=ParseMode.HTML,
        )
        return
    state = args[1].lower() in ("on", "روشن", "enable", "1")
    await db.set_setting(chat_id, "captcha_enabled", state)
    await update.message.reply_text(f"✅ کپچا {'فعال' if state else 'غیرفعال'} شد.")


def register(app) -> None:
    register_mixed(
        app,
        {"captcha": captcha_cmd},
        {
            "کپچا": captcha_cmd,
            "کپچا فعال": captcha_cmd,
            "کپچا غیرفعال": captcha_cmd,
            "ضد ربات": captcha_cmd,
            "ورودی امنیتی": captcha_cmd,
        },
    )
