import telebot
from telebot import types
import time
import random

API_TOKEN = '7554184839:AAGA2bsU5fhBZpS6SIuxqtfgZX6nfrbcfI8'
bot = telebot.TeleBot(API_TOKEN)

# قائمة الأرقام مرتبة بشكل دائري
numbers = ["60", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55"]

def generate_wheel_text(index):
    # بناء القائمة بحيث يظهر السهم بجانب الرقم النشط فقط
    lines = []
    for i in range(len(numbers)):
        if i == index:
            lines.append(f"» {numbers[i]} «") # السهم يشير للرقم الحالي
        else:
            lines.append(f"  {numbers[i]}  ")
    
    # دمج الأسطر داخل قالب Markdown ثابت
    content = "\n".join(lines)
    frame = (
        f"*\n"
        f"┌───────┐\n"
        f"|     {content}\n"
        f"└───────┘\n"
        f"*"
    )
    return frame

@bot.message_handler(commands=['start'])
def send_welcome(message):
    markup = types.InlineKeyboardMarkup()
    btn = types.InlineKeyboardButton("🎰 عجلة الحظ", callback_data="spin_wheel")
    markup.add(btn)
    bot.send_message(message.chat.id, "مرحباً بك! اضغط على الزر أدناه لتجربة حظك:", reply_markup=markup)

@bot.callback_query_handler(func=lambda call: True)
def callback_query(call):
    if call.data == "spin_wheel":
        start_spin(call.message)
    elif call.data == "back_home":
        back_to_main(call.message)

def start_spin(message):
    # الأرقام المسموحة هي التي قيمتها <= 25
    # الفهارس هي: 05(1), 10(2), 15(3), 20(4), 25(5)
    valid_indices = [1, 2, 3, 4, 5]
    final_index = random.choice(valid_indices)
    
    # عدد دورات كاملة + الوصول للرقم المطلوب
    total_steps = 12 + final_index 
    
    # إرسال الحالة الأولى
    msg = bot.edit_message_text(
        chat_id=message.chat.id,
        message_id=message.message_id,
        text=generate_wheel_text(0),
        parse_mode="Markdown"
    )

    # التحريك
    for i in range(1, total_steps + 1):
        current_idx = i % 12
        try:
            bot.edit_message_text(
                chat_id=message.chat.id,
                message_id=msg.message_id,
                text=generate_wheel_text(current_idx),
                parse_mode="Markdown"
            )
            # تسريع الدوران تدريجياً أو إبقاؤه ثابتاً
            time.sleep(0.2) 
        except Exception:
            continue

    # النتيجة النهائية
    final_num = numbers[final_index]
    markup = types.InlineKeyboardMarkup()
    markup.add(types.InlineKeyboardButton("🔙 رجوع", callback_data="back_home"))
    
    bot.edit_message_text(
        chat_id=message.chat.id,
        message_id=msg.message_id,
        text=generate_wheel_text(final_index) + f"\n\n🎯 *النتيجة: {final_num}*",
        parse_mode="Markdown",
        reply_markup=markup
    )

def back_to_main(message):
    markup = types.InlineKeyboardMarkup()
    btn = types.InlineKeyboardButton("🎰 عجلة الحظ", callback_data="spin_wheel")
    markup.add(btn)
    bot.edit_message_text(
        chat_id=message.chat.id,
        message_id=message.message_id,
        text="مرحباً بك! اضغط على الزر أدناه لتجربة حظك:",
        reply_markup=markup
    )

bot.polling()
