# -*- coding: utf-8 -*-
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from database import get_setting

def get_main_menu():
    keyboard = [
        [InlineKeyboardButton("🥇 قیمت طلا", callback_data="btn_price_gold")],
        [InlineKeyboardButton("⭐ لیست علاقه‌مندی", callback_data="btn_favorites")],
        [InlineKeyboardButton("📈 پیش‌بینی قیمت", callback_data="btn_forecast")],
        [InlineKeyboardButton("📊 نمودار قیمت", callback_data="btn_chart")],
        [InlineKeyboardButton("ℹ️ راهنما", callback_data="btn_guide")],
        [InlineKeyboardButton("⚙️ پنل مدیریت", callback_data="btn_admin")],
    ]
    return InlineKeyboardMarkup(keyboard)

def get_price_sub_menu():
    keyboard = [
        [InlineKeyboardButton("⭐ افزودن همه به علاقه‌مندی", callback_data="btn_add_favorites")],
        [InlineKeyboardButton("🔄 بروزرسانی", callback_data="btn_price_gold")],
        [InlineKeyboardButton("🔙 بازگشت به منو", callback_data="btn_main_menu")],
    ]
    return InlineKeyboardMarkup(keyboard)

def get_back_button():
    return InlineKeyboardMarkup([[InlineKeyboardButton("🔙 بازگشت به منو", callback_data="btn_main_menu")]])

def get_back_to_admin():
    return InlineKeyboardMarkup([[InlineKeyboardButton("🔙 بازگشت به پنل مدیریت", callback_data="btn_admin")]])

def get_admin_panel_menu():
    keyboard = [
        [InlineKeyboardButton("📢 مدیریت کانال‌های ارسال خودکار", callback_data="adm_auto_channels")],
        [InlineKeyboardButton("🔘 دکمه شیشه‌ای تبلیغات کانال", callback_data="adm_channel_ad_btn")],
        [InlineKeyboardButton("📣 تنظیمات تبلیغات متنی", callback_data="adm_ad_settings")],
        [InlineKeyboardButton("🌙 مدیریت حالت خواب", callback_data="adm_sleep_mode")],
        [InlineKeyboardButton("🔌 تست اتصال API", callback_data="adm_test_api")],
        [InlineKeyboardButton("🔍 مشاهده پاسخ خام API", callback_data="adm_raw_api")],
        [InlineKeyboardButton("👥 مدیریت ادمین‌ها", callback_data="adm_manage_admins")],
        [InlineKeyboardButton("🔒 مدیریت جوین اجباری", callback_data="adm_forced_join")],
        [InlineKeyboardButton("📊 آمار کاربران", callback_data="adm_user_stats")],
        [InlineKeyboardButton("✉️ ارسال همگانی", callback_data="adm_broadcast")],
        [InlineKeyboardButton("🔙 بازگشت به منو", callback_data="btn_main_menu")],
    ]
    return InlineKeyboardMarkup(keyboard)

def get_channels_list_keyboard(channels):
    keyboard = []
    for ch in channels:
        ch_id, ch_name, times, status = ch
        status_icon = "🟢" if status == "on" else "🔴"
        keyboard.append([InlineKeyboardButton(f"{status_icon} {ch_name}", callback_data=f"manage_ch_{ch_id}")])
    keyboard.append([InlineKeyboardButton("➕ افزودن کانال جدید", callback_data="adm_add_channel")])
    keyboard.append([InlineKeyboardButton("🔙 بازگشت به پنل مدیریت", callback_data="btn_admin")])
    return InlineKeyboardMarkup(keyboard)

def get_single_channel_keyboard(channel_db_id: int, status: str):
    toggle_text = "🔴 غیرفعال‌سازی ارسال" if status == "on" else "🟢 فعال‌سازی ارسال"
    keyboard = [
        [InlineKeyboardButton("🕒 تغییر ساعت‌های ارسال", callback_data=f"ch_times_{channel_db_id}")],
        [InlineKeyboardButton(toggle_text, callback_data=f"ch_toggle_{channel_db_id}")],
        [InlineKeyboardButton("❌ حذف این کانال", callback_data=f"ch_del_{channel_db_id}")],
        [InlineKeyboardButton("🔙 بازگشت به لیست کانال‌ها", callback_data="adm_auto_channels")],
    ]
    return InlineKeyboardMarkup(keyboard)

def get_channel_ad_btn_menu():
    cur_status = get_setting("channel_ad_btn_status")
    toggle_text = "🔴 خاموش کردن دکمه" if cur_status == "on" else "🟢 روشن کردن دکمه"
    keyboard = [
        [InlineKeyboardButton(toggle_text, callback_data="toggle_channel_ad_btn")],
        [InlineKeyboardButton("✏️ تغییر نام دکمه", callback_data="edit_ch_ad_btn_name")],
        [InlineKeyboardButton("🔗 تغییر لینک/آیدی کانال تبلیغات", callback_data="edit_ch_ad_btn_link")],
        [InlineKeyboardButton("🔙 بازگشت به پنل مدیریت", callback_data="btn_admin")],
    ]
    return InlineKeyboardMarkup(keyboard)

def get_channel_ad_keyboard():
    status = get_setting("channel_ad_btn_status")
    if status != "on":
        return None
    
    btn_name = get_setting("channel_ad_btn_name") or "📢 عضویت در کانال اسپانسر"
    btn_link = get_setting("channel_ad_btn_link") or "https://t.me"
    
    # ساخت لینک استاندارد در صورت وارد کردن با @
    if btn_link.startswith("@"):
        btn_link = f"https://t.me/{btn_link.replace('@', '')}"
    elif not btn_link.startswith("http://") and not btn_link.startswith("https://"):
        btn_link = f"https://t.me/{btn_link}"

    keyboard = [
        [InlineKeyboardButton(btn_name, url=btn_link)]
    ]
    return InlineKeyboardMarkup(keyboard)