<?php
/**
 * أداة إعداد واختبار Webhook Proxy
 * 
 * هذا الملف:
 * 1. يضبط webhook على wifi2fm.com ليشير إلى سيرفرنا
 * 2. يختبر أن التمرير للبوت الأصلي يعمل
 * 
 * ██ كيف يعمل الـ Proxy ██
 * 
 * قبل:  wifi2fm.com ──webhook──► البوت الأصلي (wt_webhook)
 * 
 * بعد:  wifi2fm.com ──webhook──► سيرفرنا ──تمرير──► البوت الأصلي
 *                                    │
 *                                    ▼
 *                              واجهة الويب
 * 
 * الاستخدام:
 * افتح في المتصفح: https://YOUR_DOMAIN/setup_webhook.php
 */

require_once __DIR__ . '/includes/config.php';
require_once __DIR__ . '/includes/functions.php';

$isWeb = php_sapi_name() !== 'cli';
$nl = $isWeb ? "<br>\n" : "\n";

// تحديد رابط الـ webhook الجديد (سيرفرنا)
$protocol   = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
$host       = $_SERVER['HTTP_HOST'] ?? 'chat.hotspot.local';
$basePath   = rtrim(dirname($_SERVER['SCRIPT_NAME']), '/');
$webhookUrl = "{$protocol}://{$host}{$basePath}/api/webhook.php";

// السماح بتمرير URL مخصص
if (!empty($_GET['url'])) {
    $webhookUrl = $_GET['url'];
}

if ($isWeb) echo "<pre style='font-family:monospace;direction:rtl;text-align:right;font-size:14px;line-height:1.8;'>";

echo "=== إعداد Webhook Proxy ==={$nl}{$nl}";
echo "📡 رابط الـ Webhook الجديد (سيرفرنا): {$webhookUrl}{$nl}";
echo "🤖 رابط البوت الأصلي (التمرير إليه): " . WA_ORIGINAL_WEBHOOK_URL . "{$nl}";
echo "🔑 Instance ID: " . WA_INSTANCE_ID . "{$nl}{$nl}";

// ── الخطوة 1: ضبط الـ webhook على wifi2fm.com ──────────────
echo "━━━ الخطوة 1: ضبط الـ Webhook ━━━{$nl}";

$result = waApiCall(WA_ENDPOINT_SET_WEBHOOK, [
    'webhook_url' => $webhookUrl,
    'enable'      => true,
]);

if ($result && ($result['status'] ?? '') === 'success') {
    echo "✅ تم ضبط الـ Webhook بنجاح!{$nl}";
    echo "   الاستجابة: " . ($result['message'] ?? 'OK') . "{$nl}{$nl}";
} else {
    echo "❌ فشل ضبط الـ Webhook{$nl}";
    echo "   الاستجابة: " . json_encode($result, JSON_UNESCAPED_UNICODE) . "{$nl}{$nl}";
}

// ── الخطوة 2: اختبار التمرير للبوت الأصلي ────────────────
echo "━━━ الخطوة 2: اختبار التمرير للبوت الأصلي ━━━{$nl}";

$testPayload = json_encode([
    'event' => 'test',
    'data'  => [
        'key' => ['remoteJid' => 'test@s.whatsapp.net', 'fromMe' => true],
        'message' => ['conversation' => 'Webhook proxy test'],
    ],
]);

$ch = curl_init(WA_ORIGINAL_WEBHOOK_URL);
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $testPayload,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 10,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_SSL_VERIFYPEER => true,
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error    = curl_error($ch);
curl_close($ch);

if ($error) {
    echo "❌ فشل الاتصال بالبوت الأصلي: {$error}{$nl}";
} elseif ($httpCode >= 200 && $httpCode < 300) {
    echo "✅ البوت الأصلي يستجيب (HTTP {$httpCode}){$nl}";
    echo "   الاستجابة: " . substr($response, 0, 200) . "{$nl}";
} else {
    echo "⚠️ البوت الأصلي أرجع HTTP {$httpCode}{$nl}";
    echo "   الاستجابة: " . substr($response, 0, 200) . "{$nl}";
}

echo "{$nl}━━━ الإعداد مكتمل ━━━{$nl}{$nl}";
echo "الآن كل رسالة واردة ستمر عبر سيرفرك:{$nl}";
echo "  1. wifi2fm.com يرسل الحدث لسيرفرك{$nl}";
echo "  2. سيرفرك يمرره فوراً للبوت الأصلي ← الهواتف تستمر بالعمل{$nl}";
echo "  3. سيرفرك يخزن الرسالة ← واجهة الويب تعرضها{$nl}";

echo "{$nl}⚠️ مهم: احذف هذا الملف بعد الإعداد (setup_webhook.php){$nl}";

if ($isWeb) echo "</pre>";
