<?php 

###################        
$API_KEY      = "75aa165c7d979731"; //مفتاح حسابك فى بوت TG
$commission  = "50"; //نسبه العموله بدون%
$exdataa = isset($data) ? explode('|', $data) : [];

$bot = "gdgdtyyeerrdcbot"; //يوزر بوت بدون @
$TPO0   = "-1002493575914";  // اشعارات القناة
$TPO1   = "-1002620459596";  // تفعيلات القناة
###############٢٢٢٢٢٢٢٢٢٢٢

function Call_Zezo_API($url) {
    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => $url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_TIMEOUT => 15,
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_SSL_VERIFYHOST => 2,
        CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
    ]);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}


// ===== Local-only TGupdate handler (عرض قائمة الدول من الـ API مباشرة) =====
if (isset($data) && strpos($data, 'TGupdate|') === 0) {
    $parts = explode('|', $data);
    $page = isset($parts[1]) ? max(1, intval($parts[1])) : 1;

    if (session_status() === PHP_SESSION_NONE) { @session_start(); }

    $Balance = @file_get_contents("EMILS/$EM/points.txt") ?: 0;

    // 1. جلب بيانات الدول من الـ API مباشرة باستخدام دالة cURL
    $apiUrl = "https://zezopro.net/pro?key=$API_KEY&action=get_countries";
    $response = Call_Zezo_API($apiUrl);

    if(!$response){
        bot('sendMessage',[
            'chat_id'=>$chat_id,
            'text'=>"❌ حدث خطأ في الاتصال بالسيرفر (CURL Error)."
        ]);
        exit;
    }

    $api_data = json_decode($response, true);

    if(json_last_error() !== JSON_ERROR_NONE){
        bot('sendMessage',[
            'chat_id'=>$chat_id,
            'text'=>"❌ خطأ في قراءة بيانات السيرفر (JSON Error)."
        ]);
        exit;
    }

    $all_countries = [];

    if (isset($api_data['countries']) && is_array($api_data['countries'])) {
        foreach ($api_data['countries'] as $c) {
            $iso = strtoupper($c['code_num'] ?? '');
            $name = $c['name'] ?? $iso;
            $avail = (int)($c['qty'] ?? 0);
            $base_price = $c['price'] ?? 0;

            // شرط العرض: الكمية 1 أو أكثر
            if ($avail >= 1) {
                // 1. إضافة العمولة (النسبة المئوية)
                $price_with_comm = $base_price + ($base_price * ($commission / 100));
                // 2. التحويل (ضرب في 25) والتقريب لأقرب 0.5
                $final_price = ceil(($price_with_comm * 25) * 2) / 2;

                $all_countries[] = [
                    'iso'   => $iso,
                    'name'  => $name,
                    'price' => $final_price,
                    'avail' => $avail
                ];
            }
        }
    }

    // --- إعدادات التقسيم ---
    $perPage = 30; 
    $total   = count($all_countries);
    $pages   = max(1, intval(ceil($total / $perPage)));
    $page    = min($page, $pages);
    $slice   = array_slice($all_countries, ($page - 1) * $perPage, $perPage);

    $inline = []; $row = [];
    foreach ($slice as $c) {
        $row[] = [
            'text' => "{$c['name']} ¦ {$c['price']}₽", 
            'callback_data' => "superxstorgbuy|{$c['iso']}|{$c['price']}"
        ];
        if (count($row) == 2) { $inline[] = $row; $row = []; }
    }
    if (!empty($row)) $inline[] = $row;

    // أزرار التنقل
    if ($pages > 1) {
        $paginationRow = [];
        for ($i = 1; $i <= $pages; $i++) {
            $paginationRow[] = ['text' => ($i == $page ? "[$i]" : "$i"), 'callback_data' => "TGupdate|$i"];
            if (count($paginationRow) == 5 && $pages > 5) {
                $inline[] = $paginationRow;
                $paginationRow = [];
            }
        }
        if (!empty($paginationRow)) $inline[] = $paginationRow;
    }

    $inline[] = [['text' => '• رجـوع •', 'callback_data' => 'tg_buttons2']];

    $text = "<b>شراء حسابات Telegram سليمة 100%:</b>\n";
    $text .= "<u>✅ إجمالي رصيدك الحالي: $Balance ₽</u>\n\n";
    $text .= "اختر الدولة التي تريد شراء رقم منها:";

    bot('editMessageText', [
        'chat_id'      => $chat_id,
        'message_id'   => $message_id,
        'text'         => $text,
        'parse_mode'   => 'HTML',
        'reply_markup' => json_encode(['inline_keyboard' => $inline], JSON_UNESCAPED_UNICODE)
    ]);
    exit;
}


// ===== Local-only TG (صفحة تأكيد شراء دولة محددة) =====
if (isset($data) && strpos($data, 'superxstorgbuy|') === 0) {
    $p = explode('|', $data);
    $country_iso = strtoupper($p[1] ?? '');
    $price = floatval($p[2] ?? 0);

    $Balance = @file_get_contents("EMILS/$EM/points.txt") ?: 0;

    if (floatval($price) > floatval($Balance)) {
        bot('answerCallbackQuery', [
            'callback_query_id' => $update->callback_query->id, 
            'text' => "⚠️ رصيدك الحالي ($Balance ₽) غير كافٍ لشراء هذا الحساب ($price ₽).", 
            'show_alert' => true
        ]);
        exit;
    }

    // جلب بيانات الدولة من الـ API بـ cURL
    $apiUrl = "https://zezopro.net/pro?key=$API_KEY&action=get_countries";
    $response = Call_Zezo_API($apiUrl);
    $api_data = json_decode($response, true);
    
    $avail = 0;
    $name = $country_iso;

    if (isset($api_data['countries']) && is_array($api_data['countries'])) {
        foreach ($api_data['countries'] as $c) {
            if (strtoupper($c['code_num'] ?? '') == $country_iso) {
                $avail = (int)($c['qty'] ?? 0);
                $name = $c['name'] ?? $country_iso;
                break;
            }
        }
    }

    $txt = "<b>تأكيد شراء حساب Telegram جديد:</b>\n";
    $txt .= "––––––––––––————–•\n";
    $txt .= "📡 <b>الدولة:</b> $name\n";
    $txt .= "💰 <b>السعر:</b> {$price} ₽\n";
    $txt .= "📎 <b>الكمية المتوفرة:</b> $avail حساب\n";
    $txt .= "––––––––––––————–•\n";
    $txt .= "<i>⚠️ عند الضغط على تأكيد، سيتم خصم المبلغ من رصيدك فوراً.</i>";

    bot('editMessageText', [
        'chat_id'      => $chat_id,
        'message_id'   => $message_id,
        'text'         => $txt,
        'parse_mode'   => 'HTML',
        'reply_markup' => json_encode(['inline_keyboard' => [
            [ ['text' => '✅ تأكيد الشراء الآن', 'callback_data' => "superxstorgk|$country_iso|$price"] ],
            [ ['text' => '• إلغاء ورجوع •', 'callback_data' => "TGupdate|1"] ]
        ]], JSON_UNESCAPED_UNICODE)
    ]);
    exit;
}

#######

// ==========================================
// 1. قسم شراء الرقم (superxstorgk) 
// ==========================================
if ($exdataa[0] == 'superxstorgk') {
    $country = $exdataa[1];
    $price   = $exdataa[2];
    
    $Balance = (float)file_get_contents("EMILS/$EM/points.txt");
    if ($Balance < $price) {
        bot('answerCallbackQuery', [
            'callback_query_id' => $update->callback_query->id, 
            'text' => "⚠️ رصيدك غير كافٍ!", 
            'show_alert' => true
        ]);
        exit;
    }

    // طلب الرقم من السيرفر بـ cURL
    $url = "https://zezopro.net/pro?key=$API_KEY&action=get_number&country=$country";
    $res = Call_Zezo_API($url);
    $getData = json_decode($res, true);

    $status = 'false';
    $phone = null;
    $country_name = $country;

    if (isset($getData['status']) && ($getData['status'] == 'true' || $getData['status'] === true)) {
        $status = 'true';
        $phone = $getData['results'][0]['number'] ?? $getData['phone'] ?? $getData['number'] ?? null;
        if(!empty($getData['country_name'])){
            $country_name = $getData['country_name'];
        }
    }

    if ($status == 'true' && !empty($phone)) {
        $phone = str_replace(['+', ' '], '', $phone);
        
        // إبلاغ السيرفر بحفظ الطلب بـ cURL
        $saveOrderUrl = "https://zezopro.net/pro?key=$API_KEY&action=save_order&phone=$phone&country=$country&price=$price";
        Call_Zezo_API($saveOrderUrl);

        $newBalance = $Balance - $price;
        file_put_contents("EMILS/$EM/points.txt", $newBalance);
        
        $accounts = (int)@file_get_contents("EMILS/$EM/accounts.txt") + 1;
        file_put_contents("EMILS/$EM/accounts.txt", $accounts);

        $buyHistoryFile = "EMILS/$EM/buy_history.json";
        if (!is_dir("EMILS/$EM")) @mkdir("EMILS/$EM", 0777, true);
        
        $buyHistory = file_exists($buyHistoryFile) ? json_decode(file_get_contents($buyHistoryFile), true) : [];
        
        $newEntry = [
            "number"   => $phone,
            "country"  => $country_name,
            "price"    => $price,
            "code"     => "", 
            "password" => "", 
            "date"     => date("Y-m-d H:i:s")
        ];
        
        array_unshift($buyHistory, $newEntry); 
        file_put_contents($buyHistoryFile, json_encode($buyHistory, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));

        bot('editmessagetext', [
            'chat_id' => $chat_id,
            'message_id' => $message_id,
            'text' => "🎛 الدولة : <b>$country_name</b> •\n☎️ الرقم : <code>+$phone</code> •\n💰 السعر : $price ₽ 💙•\n🔍 السيرفر : ( 1 ) 🍷 •",
            'parse_mode' => "html",
            'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [['text' => "• طلب كود •", 'callback_data' => "superxstorgkGet|$phone|$price|$country"]]
                ]
            ])
        ]);

        bot('sendMessage', [
            'chat_id' => $TPO0,
            'text' => "➖ تم شراء رقم جاهز 🎮\n➖ 💸 السعر: $price •\n➖ ايديه : $chat_id 🆔️•\n➖ الدولة: $country_name •\n➖ الرقم : +$phone ••\n➖ رصيد قبل : $Balance •\n➖ رصيد بعد : $newBalance •",
            'parse_mode' => "Markdown",
            'reply_markup' => json_encode(['inline_keyboard' => [[['text' => "✥ التحقق من الشخص٭", 'url' => "tg://openmessage?user_id=$chat_id"]]]])
        ]);

    } else {
        bot('answerCallbackQuery', [
            'callback_query_id' => $update->callback_query->id,
            'text' => "❌ عذراً، لا توجد أرقام متاحة حالياً.",
            'show_alert' => true
        ]);
    }
    exit;
}

// ==========================================
// 2. قسم طلب الكود (superxstorgkGet)
// ==========================================
if($exdataa[0] == 'superxstorgkGet'){
    $phone = str_replace(['+', ' '], '', trim($exdataa[1]));
    $price_local = $exdataa[2]; 
    $iso_local   = $exdataa[3];   
    $buyHistoryFile = "EMILS/$EM/buy_history.json";

    if (file_exists($buyHistoryFile)) {
        $history = json_decode(file_get_contents($buyHistoryFile), true);
        foreach ($history as $item) {
            $item_phone_clean = str_replace(['+', ' '], '', $item['number']);
            if ($item_phone_clean == $phone && !empty($item['code'])) {
                bot('answerCallbackQuery', [
                    'callback_query_id' => $update->callback_query->id,
                    'text' => "⚠️ عذراً، لقد استلمت الكود بالفعل ولا يوجد كود جديد حالياً.",
                    'show_alert' => false
                ]);
                exit;
            }
        }
    }

    // جلب الكود من السيرفر بـ cURL
    $apiUrl = "https://zezopro.net/pro?key=$API_KEY&action=get_code&phone=$phone";
    $res = Call_Zezo_API($apiUrl);
    $getData = json_decode($res, true);
    
    $is_done = (isset($getData['status']) && ($getData['status'] == 'true' || $getData['status'] === true) && !empty($getData['code']));

    if ($is_done) {
        $code        = $getData['code'];
        $password    = (!empty($getData['password']) && $getData['password'] !== "no password") ? $getData['password'] : "no password";
        $c_name      = $getData['country_name'] ?? $iso_local;
        $base_api_price = $getData['price'] ?? 0; 
        
        if($base_api_price > 0){
            $price_with_comm = $base_api_price + ($base_api_price * ($commission / 100));
            $final_price = ceil(($price_with_comm * 25) * 2) / 2;
        } else {
            $final_price = $price_local;
        }

        $DAY2 = date("Y-m-d H:i:s");
    
        bot('answerCallbackQuery', [
            'callback_query_id' => $update->callback_query->id,
            'text' => "✅ تم استلام الكود بنجاح",
            'show_alert' => false
        ]);

        if (file_exists($buyHistoryFile)) {
            $history = json_decode(file_get_contents($buyHistoryFile), true);
            foreach ($history as &$item) {
                if (str_replace(['+', ' '], '', $item['number']) == $phone) {
                    $item['code'] = $code;
                    $item['password'] = $password;
                    break;
                }
            }
            file_put_contents($buyHistoryFile, json_encode($history, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
        }

        $Engjimi1 = substr($chat_id, 0, -3) . "•••";
        $Engjimi2 = substr($phone, 0, -4) . "••••";

        bot('sendmessage', [
            'chat_id' => $TPO1,
            'text' => "
<b>➖ رقم الطلب : <s>$code</s> 🛎•</b>
<b>➖️ الدوله : $c_name •</b>
<b>➖ الرقم  : +$Engjimi2 •</b>
<b>➖ تلجـTelegramـرام جاهزة ٭•</b>
<b>➖ المنصة #TeleGram 🌐•</b>
<b>➖ المالك :</b> <tg-spoiler>$Engjimi1</tg-spoiler> 🆔.
<b>➖ السيـرفر : ( 1 ) 🍷 •</b>
<b>➖ السعر : ₽ $final_price 💙•</b>
<b>➖ الحالة :  تم التفعيل  ✅• </b>

<b>📨 رقم الرسالة :  ️1⃣</b>
<b>➕ انشاء : $DAY2 •  📥•</b>
<b>➕ المرسل : Telegram •</b>
<b>➕ كود التفعيل :</b> <tg-spoiler>$code</tg-spoiler> 🚀
<b>➕ الباسورد :</b> <tg-spoiler>$password</tg-spoiler> 🔐
",
            'parse_mode' => "html",
            'disable_web_page_preview' => true,
            'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [['text' => "✥✓ طلب رقم جاهز من السيرفر ٭", 'url' => "t.me/$bot?start"]]
                ]
            ])
        ]);

        bot('sendMessage', [
            'chat_id' => $chat_id,
            'text' => "
📞 <b>𝐍𝐔𝐌𝐁𝐄𝐑</b> : <code>+$phone</code>
💬 <b>𝐂𝐎𝐃𝐄</b> : <code>$code</code>
🔑 <b>𝐏𝐀𝐒𝐒</b> : <code>$password</code>
",
            'parse_mode' => "HTML",
            'reply_markup' => json_encode([
                'inline_keyboard' => [
                    [['text' => "• تسجيل خروج الخادم •", 'callback_data' => "superxstorgkLog|$phone"]]
                ]
            ])
        ]);
    } else {
        bot('answerCallbackQuery', [
            'callback_query_id' => $update->callback_query->id,
            'text' => "⌛ لم يصل الكود بعد، يرجى المحاولة بعد قليل.",
            'show_alert' => false
        ]);
    }
    exit;
}

// ==========================================
// 3. قسم تسجيل الخروج (superxstorgkLog)
// ==========================================
if($exdataa[0] == 'superxstorgkLog'){
    $number = $exdataa[1];

    // تسجيل الخروج بـ cURL
    $url = "https://zezopro.net/pro?key=$API_KEY&action=logout&phone=$number";
    $res = Call_Zezo_API($url);
    $getData = json_decode($res, true);
    
    $status = isset($getData['status']) ? (string)$getData['status'] : 'false';

    if ($status === 'true') {
        bot('answerCallbackQuery', [
            'callback_query_id' => $update->callback_query->id,
            'text' => "✅ تم تسجيل الخروج بنجاح من الخادم.", 
            'show_alert' => false
        ]);
    } else {
        $errorMsg = $getData['message'] ?? "لقد تم تسجيل الخروج مسبقاً أو تعذر الاتصال.";
        bot('answerCallbackQuery', [
            'callback_query_id' => $update->callback_query->id,
            'text' => "❌ تنبيه: $errorMsg", 
            'show_alert' => true
        ]);
    }
}



// ===========================================
// نهاية معالج الرسائل النصية
// ===========================================