"""
Inline keyboards for the admin panel.
All labels in Persian (فارسی).

Buttons are CLASSIC plain-text buttons. Every emoji shown on a button comes
from the shared list in utils/emojis.py via ``get_plain_emoji()`` — no
``style`` and no ``icon_custom_emoji_id``.
"""

from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from utils.emojis import get_plain_emoji


def _r_button(text_key: str, text: str, cb: str) -> InlineKeyboardButton:
    """Build a classic inline button: plain list emoji + label + callback."""
    return InlineKeyboardButton(text=f"{get_plain_emoji(text_key)} {text}", callback_data=cb)


def admin_panel_kb(user_count: int = 0) -> InlineKeyboardMarkup:
    count_str = f" ({user_count})" if user_count else ""
    return InlineKeyboardMarkup(inline_keyboard=[
        [_r_button("users", f"کاربران{count_str}", "admin:users_stat")],
        [_r_button("call", "ارسال پیام همگانی", "admin:broadcast")],
        [_r_button("ticket", "مدیریت تیکت‌ها", "admin:tickets")],
        [_r_button("yellow_circle", "سفارش‌های در انتظار", "admin:pending")],
        [_r_button("green_circle", "مدیریت سفارشات پرداخت شده", "admin:paid_orders")],
        [_r_button("check", "سفارش‌های تکمیل شده", "admin:completed")],
        [_r_button("money", "مدیریت قیمت محصولات", "admin:prices")],
        [_r_button("exchange", "حاشیه سود اکانت‌ها", "admin:account_margin")],
        [_r_button("chart", "تمام سفارش‌ها", "admin:all_orders")],
        [_r_button("chart", "گزارش مالی", "admin:finance")],
        [_r_button("question", "راهنمای مدیران", "admin:guide")],
    ])


def admin_order_kb(order_id: int) -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(inline_keyboard=[
        [_r_button("check", "تحویل داده شد", f"admin:deliver:{order_id}")],
        [_r_button("cross", "لغو سفارش", f"admin:cancel:{order_id}")],
        [_r_button("back_arrow", "بازگشت", "admin:panel")],
    ])


def admin_paid_order_kb(order_id: int) -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(inline_keyboard=[
        [_r_button("check", "انجام شد", f"admin:complete:{order_id}")],
        [_r_button("cross", "لغو شد", f"admin:cancel:{order_id}")],
        [_r_button("back_arrow", "بازگشت", "admin:paid_orders")],
    ])


def admin_back_kb() -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(inline_keyboard=[
        [_r_button("home", "پنل مدیریت", "admin:panel")],
    ])


def admin_finance_kb() -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(inline_keyboard=[
        [_r_button("exchange", "به‌روزرسانی", "admin:finance")],
        [_r_button("home", "پنل مدیریت", "admin:panel")],
    ])


def admin_broadcast_confirm_kb() -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(inline_keyboard=[
        [_r_button("check", "ارسال", "admin:broadcast:send")],
        [_r_button("cross", "انصراف", "admin:panel")],
    ])