from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup


def service_keyboard() -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(
        inline_keyboard=[
            [
                InlineKeyboardButton(
                    text="🇩🇪 اقتصادی مستقیم",
                    callback_data="economic_direct",
                ),
                InlineKeyboardButton(
                    text="☁️ AWS مستقیم",
                    callback_data="aws_direct",
                ),
            ],
            [
                InlineKeyboardButton(
                    text="🔒 اقتصادی تانل",
                    callback_data="economic_tunnel",
                ),
                InlineKeyboardButton(
                    text="🚀 AWS تانل",
                    callback_data="aws_tunnel",
                ),
            ],
            [
                InlineKeyboardButton(
                    text="🔙 بازگشت",
                    callback_data="back_to_main",
                )
            ],
        ]
    )


def plan_detail_keyboard(
    service_type: str,
    plans: list,
) -> InlineKeyboardMarkup:

    buttons = []

    for plan_id, name, price in plans:
        price_text = f"{price:,}".replace(",", "٬")

        buttons.append(
            InlineKeyboardButton(
                text=f"{name} — {price_text} تومان",
                callback_data=f"buy_{service_type}_{plan_id}",
            )
        )

    rows = []

    # دو دکمه کنار هم
    for i in range(0, len(buttons), 2):
        rows.append(buttons[i:i + 2])

    rows.append(
        [
            InlineKeyboardButton(
                text="🔙 بازگشت",
                callback_data="buy_subscription",
            )
        ]
    )

    return InlineKeyboardMarkup(
        inline_keyboard=rows
    )


def back_to_main_keyboard() -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(
        inline_keyboard=[
            [
                InlineKeyboardButton(
                    text="🔙 بازگشت به منوی اصلی",
                    callback_data="back_to_main",
                )
            ]
        ]
    )


def plans_list_keyboard() -> InlineKeyboardMarkup:
    return InlineKeyboardMarkup(
        inline_keyboard=[
            [
                InlineKeyboardButton(
                    text="🛒 خرید اشتراک",
                    callback_data="buy_subscription",
                )
            ],
            [
                InlineKeyboardButton(
                    text="🔙 بازگشت",
                    callback_data="back_to_main",
                )
            ],
        ]
    )