"""Bot constants, messages, emojis, and keyboards."""
from __future__ import annotations

# ───────── Emojis ─────────
E = {
    "bot": "🤖",
    "shield": "🛡",
    "ban": "🔨",
    "mute": "🔇",
    "warn": "⚠️",
    "kick": "👢",
    "lock": "🔒",
    "unlock": "🔓",
    "welcome": "👋",
    "goodbye": "😢",
    "rules": "📜",
    "notes": "📝",
    "filters": "🔍",
    "settings": "⚙️",
    "info": "ℹ️",
    "stats": "📊",
    "report": "🚨",
    "flood": "🌊",
    "link": "🔗",
    "spam": "🚫",
    "pin": "📌",
    "del": "🗑",
    "purge": "🧹",
    "admin": "👮",
    "owner": "👑",
    "user": "👤",
    "chat": "💬",
    "channel": "📢",
    "time": "⏰",
    "check": "✅",
    "cross": "❌",
    "fire": "🔥",
    "star": "⭐",
    "heart": "❤️",
    "rocket": "🚀",
    "wave": "🌊",
    "zap": "⚡",
    "key": "🔑",
    "list": "📋",
    "edit": "✏️",
    "add": "➕",
    "minus": "➖",
    "play": "▶️",
    "stop": "⏹",
    "back": "🔙",
    "next": "➡️",
    "prev": "⬅️",
    "close": "✖️",
    "captcha": "🧩",
    "tag": "📣",
    "save": "💾",
    "id": "🆔",
    "calc": "🧮",
    "color": "🎨",
    "music": "🎵",
    "video": "🎬",
    "image": "🖼",
    "doc": "📄",
    "voice": "🎤",
    "sticker": "🎭",
    "gif": "🎞",
    "location": "📍",
    "contact": "📇",
    "poll": "📊",
    "forward": "↗️",
    "mention": "📛",
    "url": "🌐",
    "command": "⌨️",
    "text": "📃",
    "rtl": "🔠",
    "emoji_only": "😀",
    "arabic": "🅰️",
    "english": "🔤",
    "persian": "🇮🇷",
    "media": "🖼",
    "game": "🎮",
    "inline": "📲",
    "bot_add": "🤖",
    "all_ok": "🟢",
    "partial": "🟡",
    "fail": "🔴",
    "loading": "⏳",
    "done": "🎉",
    "no_perm": "🚷",
    "beta": "🧪",
    "vip": "💎",
    "trash": "🗑",
    "backup": "📦",
    "restore": "🔄",
    "sudo": "🛡",
    "global": "🌍",
    "raid": "🌀",
    "slow": "🐢",
    "sparkles": "✨",
    "help": "❓",
}


# ───────── Lock types ─────────
LOCK_TYPES = {
    "media": ("رسانه", "🖼"),
    "photo": ("عکس", "🖼"),
    "video": ("ویدیو", "🎬"),
    "document": ("سند", "📄"),
    "sticker": ("استیکر", "🎭"),
    "gif": ("گیف", "🎞"),
    "voice": ("ویس", "🎤"),
    "videonote": ("ویدیوگرد", "📹"),
    "audio": ("صوت", "🎵"),
    "contact": ("مخاطب", "📇"),
    "location": ("مکان", "📍"),
    "poll": ("نظرسنجی", "📊"),
    "game": ("بازی", "🎮"),
    "forward": ("فوروارد", "↗️"),
    "url": ("لینک", "🌐"),
    "bot": ("ربات", "🤖"),
    "mention": ("منشن همگانی", "📛"),
    "command": ("دستور", "⌨️"),
    "rtl": ("متن فارسی/عربی", "🔠"),
    "arabic": ("متن عربی", "🅰️"),
    "english": ("متن انگلیسی", "🔤"),
    "emoji": ("فقط ایموجی", "😀"),
    "inline": ("اینلاین", "📲"),
    "webpage": ("پیش‌نمایش لینک", "🌐"),
}

FLOOD_MODES = {
    "ban": "بن",
    "mute": "سکوت",
    "kick": "کیک",
    "tban": "بن موقت",
    "tmute": "سکوت موقت",
}

WARN_MODES = {
    "ban": "بن",
    "mute": "سکوت",
    "kick": "کیک",
}


# ───────── Help text ─────────
HELP_TEXT = f"""
<b>{E['bot']} سلام! من bobi هستم، ربات مدیریت گروه!</b>
<b>🗣 بدون / هم می‌فهممت! فقط فارسی حرف بزن</b>
<b>مثلاً به جای /ban بگو: "بن کن" یا "اخراجش کن"</b>
━━━━━━━━━━━━━━━━━━━━━

<b>{E['admin']} 👮 مدیریت اعضا (روی پیام ریپلای کن + دستور بده):</b>
• بن کن / بنش کن [دلیل] - بن کردن کاربر
• بن موقت [مثلاً 1d] [دلیل] - بن موقت
• حذف بن / رفع بن / آنبن - رفع بن
• ساکت کن / سکوت کن [زمان] - میوت
• سکوت موقت [زمان] - میوت موقت
• حذف سکوت / رفع سکوت / آنمیوت - رفع میوت
• اخراج کن / بندازش بیرون / کیک - کیک
• اخطار بده / تذکر بده [دلیل] - اخطار
• حذف اخطار / پاکسازی اخطار / اخطارها - مدیریت اخطار
• پاک کردن / پاکسازی [تعداد] - پاک کردن پیام
• حذف کن / پاکش کن (روی پیام) - حذف
• سنجاق کن / پین کن [روی پیام] - سنجاق
• حذف سنجاق / آنپین - حذف سنجاق
• حذف همه سنجاق‌ها - پاکسازی سنجاق‌ها

<b>{E['lock']} 🔒 قفل‌های گروه:</b>
• قفل کن [نوع] / ببند [نوع] - فعال‌سازی قفل
• باز کن [نوع] / واکشی [نوع] - رفع قفل
• قفل‌ها / لیست قفل - نمایش قفل‌های فعال
• انواع قفل / locktypes - لیست انواع قفل
• رفع همه قفل / همه قفل باز - لغو همه قفل‌ها
• قفل گروه / قفل همه چیز - قفل کامل
• پنل قفل / پنل - پنل مدیریت قفل‌ها

<b>{E['shield']} 🛡 امنیت و محافظت:</b>
• تنظیم رگبار / ضد فلود [عدد] - تنظیم تعداد مجاز پیام
• حالت رگبار [ban/delete/mute/kick] - نوع جریمه فلود
• ضد لینک / آنتی لینک - مسدود کردن لینک
• کلمه ممنوع / لیست سیاه [کلمه] - افزودن به لیست سیاه
• لیست سیاه / کلمات ممنوع - مشاهده لیست سیاه
• حذف لیست سیاه [کلمه] - پاک کردن از لیست
• ضد ریپ / ضد حمله - فعال‌سازی ضد حمله
• ضد ربات - جلوگیری از ورود ربات‌ها
• ضد فوروارد - مسدودسازی فوروارد
• ضد اسپم / هوش اسپم - تشخیص اسپم با هوش مصنوعی

<b>{E['time']} ⏰ قفل خودکار:</b>
• تنظیم قفل خودکار [ساعت شروع] [ساعت پایان] - قفل خودکار گروه
• حذف قفل خودکار - لغو
• وضعیت قفل خودکار - بررسی وضعیت

<b>{E['welcome']} 👋 خوش‌آمدگویی:</b>
• تنظیم خوشامد [متن] / پیام خوشامد - تنظیم متن خوش‌آمد
• خوشامد / پیام فعلی - نمایش متن فعلی
• حذف خوشامد / بازنشانی - حذف پیام خوشامد
• استیکر خوشامد [روی استیکر ریپلای کن] - تنظیم استیکر خوش‌آمد
• حذف استیکر خوشامد - حذف استیکر
• تنظیم خداحافظی [متن] - تنظیم متن خداحافظی
• خداحافظی / متن خداحافظی - نمایش
• حذف خداحافظی - حذف

<b>{E['rules']} 📜 قوانین:</b>
• قوانین / قوانین گروه - نمایش قوانین
• تنظیم قوانین [متن] / قانون جدید - تنظیم قوانین
• حذف قوانین / پاک کردن قوانین - حذف

<b>{E['notes']} 📝 یادداشت‌ها:</b>
• ذخیره کن [نام] (روی پیام ریپلای کن) - ذخیره یادداشت
• [نام] / یادداشت [نام] / دریافت [نام] - نمایش یادداشت
• یادداشت‌ها / همه یادداشت‌ها - لیست
• حذف یادداشت [نام] - حذف
• پاک کردن همه یادداشت‌ها - پاکسازی

<b>{E['filters']} 🔍 فیلترهای خودکار:</b>
• فیلتر [کلمه] (روی جواب ریپلای کن) - افزودن فیلتر
• فیلترها / لیست فیلتر - نمایش
• حذف فیلتر [کلمه] - حذف
• پاکسازی فیلترها - حذف همه

<b>{E['captcha']} 🧩 کپچا (جلوگیری از ربات):</b>
• کپچا فعال / کپچا غیرفعال - روشن/خاموش
• تنظیم کپچا / کپچا - تنظیمات کپچا

<b>{E['tag']} 📣 تگ همگانی:</b>
• تگ کن [متن] / همگانی [متن] - منشن همه
• ادمینا / ادمین‌ها / مدیران - منشن ادمین‌ها

<b>{E['report']} 🚨 گزارش به ادمین:</b>
• گزارش [دلیل] / شکایت - گزارش پیام
• گزارش‌ها / لیست گزارش - نمایش

<b>{E['info']} ℹ️ اطلاعات:</b>
• اطلاعات [روی کاربر ریپلای کن] - پروفایل کاربر
• اطلاعات گروه / آیدی گروه / گروه - مشخصات گروه
• آیدی / id - شناسه عددی
• آمار / فعال‌ترین - آمار گروه
• کاربران برتر / برترین‌ها - فعال‌ترین کاربران
• پینگ / چه خبر - سرعت اتصال
• وضعیت ربات / سلامت - وضعیت کلی ربات
• لینک پیام [روی پیام ریپلای کن] - لینک مستقیم

<b>{E['settings']} ⚙️ تنظیمات:</b>
• تنظیمات / پنل تنظیمات - پنل تنظیمات
• زبان [fa/en] / تغییر زبان - تغییر زبان

<b>{E['admin']} 👮 دستورات مدیریتی:</b>
• مدیر [روی کاربر ریپلای کن] / ادمینش کن - ارتقا به مدیر
• عزل / حذف مدیر [روی کاربر] - عزل از مدیریت
• مدیران / لیست مدیران - نمایش
• تنظیم لقب [متن] / لقب - تنظیم عنوان
• ساخت دستور [نام] (روی پیام ریپلای کن) - دستور سفارشی

<b>{E['sudo']} 🛡 دستورات مخصوص مالک:</b>
• بن سراسری [آیدی/ریپلای] / گلوبال بن - بن در همه گروه‌ها
• حذف بن سراسری / رفع گلوبال بن - رفع
• بکاپ / پشتیبان‌گیری - دریافت نسخه پشتیبان
• خروجی گروه / exportchat - خروجی تنظیمات
• بازگردانی / restore (روی فایل ریپلای کن) - بازیابی

<b>🎉 سرگرمی‌ها:</b>
• فال / فال حافظ - فال حافظ با تفسیر
• تقویم / تقویم امروز / تاریخ - تقویم شمسی
• معنی [کلمه] / یعنی چی [کلمه] - فرهنگ لغت
• عکس به استیکر / photo2sticker - تبدیل عکس به استیکر
• استیکر به عکس / sticker2photo - تبدیل استیکر به عکس
• بگو [متن] / تکرار کن - تکرار
• تاس / بینداز تاس - تاس انداختن
• سکه / شیر یا خط - شیر یا خط
• شانس / شانس امروز / بخت - شانس امروز
• عدد / عدد تصادفی - عدد تصادفی
• انتخاب کن [گزینه۱، گزینه۲، ...] / انتخابت کن - انتخاب تصادفی
• رمز / رمز تصادفی [طول] - تولید رمز عبور
• کیوآر / qr [متن] - ساخت QR کد
• نظر سنجی [سوال | گزینه۱ | گزینه۲] - نظر سنجی گروهی
• حذف خودکار [ثانیه] - حذف خودکار پیام ربات

<b>🎯 ابزارهای کاربردی:</b>
• ترجمه [متن] / برگردون [متن] - ترجمه متن به فارسی
• برگشت / واگردانی - بازگشت آخرین عمل
• هوش مصنوعی [سوال] / بپرس [سوال] - سوال از AI
• شخصیت / تنظیم چت - تنظیم شخصیت هوش مصنوعی
• یادداشت مدیر [متن] / note - یادداشت شخصی مدیران

<i>💡 یادت باشه: هر جا که دستور نوشته، همون رو به فارسی معمولی بگو!
مثلاً به جای /warn -> "اخطار بده" یا "تذکر بده"
bobi حرف زدن عادی رو هم می‌فهمه، پس راحت باش! 😊</i>
"""


# ───────── Help sections (used by start.py help callback) ─────────
HELP_SECTIONS = {
    "admin": "مدیریت اعضا",
    "locks": "قفل‌ها",
    "protection": "امنیت",
    "tag": "تگ و گزارش",
    "groups": "تنظیمات گروه",
    "fun": "سرگرمی",
    "ai": "هوش مصنوعی",
    "stats": "آمار",
}


# ───────── Common messages (Persian natural) ─────────
MSG = {
    "private_only": f"{E['no_perm']} این دستور فقط تو گروه کار میکنه!",
    "group_only": f"{E['no_perm']} این دستور فقط تو گروه کار میکنه!",
    "admin_only": f"{E['no_perm']} متأسفانه فقط ادمین‌ها می‌تونن از این دستور استفاده کنن",
    "sudo_only": f"{E['no_perm']} این دستور مخصوص سودو و مالک رباته!",
    "owner_only": f"{E['no_perm']} فقط مالک ربات می‌تونه این کار رو بکنه!",
    "bot_admin": f"{E['no_perm']} اول باید منو ادمین گروه کنی!",
    "bot_no_perm": f"{E['no_perm']} دسترسی لازم رو ندارم. لطفاً دسترسی مورد نیاز رو بهم بده!",
    "user_not_admin": f"{E['no_perm']} این کاربر ادمینه و نمی‌تونم باهاش کاری کنم.",
    "user_bot": f"{E['no_perm']} رباتو با حال خودش بذار! 🤖",
    "self_promote": f"{E['no_perm']} خودت که نمی‌تونی خودتو بن کنی!",
    "bot_promote": f"{E['no_perm']} آخه من خودم چجوری خودمو بن کنم؟ 🤦",
    "reply_or_user": f"{E['cross']} روی پیام کاربر ریپلای کن یا یوزرنیم/آیدیش رو بده",
    "no_reply": f"{E['cross']} لطفاً روی پیام مورد نظر ریپلای کن!",
    "user_not_found": f"{E['cross']} این کاربر رو پیدا نکردم! مطمئنی درسته؟",
    "no_args": f"{E['cross']} یه مقدار هم باید بهم بگی! مثلاً: بن کن @username",
    "invalid_time": f"{E['cross']} فرمت زمان اشتباهه! از اینا استفاده کن: 1h (ساعت), 1d (روز), 1w (هفته)",
    "error": f"{E['cross']} متأسفانه یه خطایی پیش اومد! لطفاً دوباره تلاش کن",
    "no_db": f"{E['cross']} دیتابیس در دسترس نیست! با ادمین ربات تماس بگیر",
    "not_authorized": f"{E['cross']} شما اجازه این کار رو نداری!",
    "ok": f"{E['check']} انجام شد!",
    "canceled": f"{E['cross']} لغو شد",
    "processing": f"{E['loading']} دارم انجام میدم... لطفاً صبر کن",
    "wait": f"{E['slow']} آهسته آهسته! یه کم صبر کن بین دستورات 😊",
    "no_results": f"{E['cross']} چیزی پیدا نشد!",
    "already": f"{E['check']} همینطوریه! نیازی به تغییر نیست 👍",
    "done_bold": f"{E['done']} با موفقیت انجام شد! 🎉",
}


# ───────── Welcome/Goodbye placeholders ─────────
PLACEHOLDERS = {
    "{first}": "نام",
    "{last}": "نام خانوادگی",
    "{fullname}": "نام کامل",
    "{username}": "یوزرنیم",
    "{mention}": "منشن",
    "{id}": "آیدی عددی",
    "{chat}": "نام گروه",
    "{count}": "تعداد اعضا",
}


# ───────── Persian digits ─────────
PERSIAN_DIGITS = "۰۱۲۳۴۵۶۷۸۹"
ARABIC_DIGITS = "٠١٢٣٤٥٦٧٨٩"


def to_persian(text: str) -> str:
    """Convert ASCII digits to Persian digits."""
    for i, d in enumerate("0123456789"):
        text = text.replace(d, PERSIAN_DIGITS[i])
    return text
