<?php
$page_title = 'إعدادات واتساب';

$UA_FORCE_DESIGN_V2 = true;
$uaAndroidSettingsWhatsapp = ((string)($_GET['ua_android'] ?? '') === '1') || stripos((string)($_SERVER['HTTP_USER_AGENT'] ?? ''), 'NetworkCustomersAndroid/') !== false;
if ($uaAndroidSettingsWhatsapp) $UA_PAGE_CSS = ['assets/css/android_settings_whatsapp.css'];

require_once __DIR__ . '/helpers.php';
require_once __DIR__ . '/auth.php';
require_once __DIR__ . '/security.php';
require_login('login.php');

// صلاحية عامة للإعدادات إن وجدت
if (function_exists('require_perm')) {
    require_perm('can_settings');
}

require_once __DIR__ . '/db_bootstrap.php';
require_once __DIR__ . '/settings_store.php';
require_once __DIR__ . '/whatsapp_cloud.php';

ensure_db(true);
$conn = $GLOBALS['conn'];

$msg = '';
$err = '';

$cfg = setting_get($conn, 'whatsapp_cloud', []);

// Defaults
$cfg = array_merge([
    'enabled' => 0,
    'api_version' => 'v20.0',
    'phone_number_id' => '',
    'access_token' => '',
    'default_country_code' => '', // مثال: 49
    'test_recipient' => '',
], is_array($cfg) ? $cfg : []);

if (($_SERVER['REQUEST_METHOD'] ?? 'GET') === 'POST'
    && function_exists('ua_csrf_verify') && !ua_csrf_verify()) {
    $err = 'انتهت صلاحية الطلب. أعد تحميل الصفحة وحاول مجدداً.';
} elseif (isset($_POST['save'])) {
    $cfg['enabled'] = isset($_POST['enabled']) ? 1 : 0;
    $cfg['api_version'] = trim((string)($_POST['api_version'] ?? 'v20.0'));
    $cfg['phone_number_id'] = trim((string)($_POST['phone_number_id'] ?? ''));
    $cfg['access_token'] = trim((string)($_POST['access_token'] ?? ''));
    $cfg['default_country_code'] = preg_replace('/[^0-9]/', '', (string)($_POST['default_country_code'] ?? ''));
    $cfg['test_recipient'] = preg_replace('/[^0-9]/', '', (string)($_POST['test_recipient'] ?? ''));

    if (!preg_match('/^v\d+\.\d+$/', $cfg['api_version'])) {
        $err = 'صيغة API Version غير صالحة. استخدم صيغة مثل v20.0.';
    } elseif ($cfg['enabled'] && ($cfg['phone_number_id'] === '' || $cfg['access_token'] === '')) {
        $err = 'لتفعيل واتساب يجب إدخال Phone Number ID و Access Token.';
    } else {
        setting_set($conn, 'whatsapp_cloud', $cfg);
        $msg = 'تم حفظ إعدادات واتساب ✅';
    }
}

// اختبار إرسال
if ($err === '' && isset($_POST['test_send'])) {
    $to = preg_replace('/[^0-9]/', '', (string)($_POST['test_to'] ?? ''));
    $text = trim((string)($_POST['test_text'] ?? ''));
    if ($to === '' || $text === '') {
        $err = 'أدخل رقم اختبار ونص رسالة.';
    } else {
        $tempCfg = $cfg;
        $tempCfg['enabled'] = 1;
        $sender = new WhatsAppCloudSender($conn, $tempCfg);
        $res = $sender->sendText($to, $text);
        if (($res['ok'] ?? false) === true) {
            $msg = 'تم إرسال رسالة الاختبار بنجاح ✅';
        } else {
            $err = 'فشل إرسال الاختبار: ' . ($res['error'] ?? '');
        }
    }
}

require_once __DIR__ . '/header.php';
if (!defined('UA_EMBED') || !UA_EMBED) require_once __DIR__ . '/sidebar.php';
$active_tab = 'whatsapp';
if (!$uaAndroidSettingsWhatsapp) include __DIR__ . '/messages_tabs.php';
if ($uaAndroidSettingsWhatsapp) { require __DIR__ . '/android_settings_whatsapp.php'; include __DIR__ . '/footer.php'; return; }
?>

<div class="content-wrapper ua-msg-page ua-extracted-page wa-settings-page">
  <section class="content">
    <div class="container-fluid">
      <header class="msg-page-hero">
        <div class="msg-page-hero__title">
          <i class="msg-page-hero__icon fa fa-whatsapp"></i>
          <div>
            <small>WHATSAPP CLOUD API</small>
            <h1>إعدادات إرسال واتساب</h1>
            <p>ربط رقم الإرسال وإدارة بيانات Meta واختبار الاتصال من مكان واحد.</p>
          </div>
        </div>
        <div class="msg-page-hero__meta"><i></i><?= !empty($cfg['enabled']) ? 'الإرسال مفعّل' : 'الإرسال متوقف' ?></div>
      </header>

      <?php if ($msg !== ''): ?><div class="msg-feedback" role="status"><i class="fa fa-check-circle"></i><span><?= h($msg) ?></span></div><?php endif; ?>
      <?php if ($err !== ''): ?><div class="msg-feedback is-error" role="alert"><i class="fa fa-exclamation-triangle"></i><span><?= h($err) ?></span></div><?php endif; ?>

      <div class="wa-settings-grid">
        <section class="msg-panel">
          <div class="msg-panel-title">
            <i class="fa fa-link"></i>
            <div><small>CONNECTION</small><h2>بيانات الاتصال</h2></div>
          </div>

          <form method="post">
            <?php if (function_exists('ua_csrf_field')) ua_csrf_field(); ?>
            <label class="msg-switch">
              <input type="checkbox" name="enabled" value="1" <?= !empty($cfg['enabled']) ? 'checked' : '' ?>>
              <span><b>تفعيل إرسال واتساب</b><small>عند التعطيل تبقى الإعدادات محفوظة ولا تُرسل رسائل جديدة.</small></span>
            </label>

            <div class="msg-form-grid">
              <label class="msg-field">
                <span>إصدار API</span>
                <input name="api_version" value="<?= h($cfg['api_version']) ?>" dir="ltr" placeholder="v20.0">
              </label>
              <label class="msg-field">
                <span>رمز الدولة الافتراضي</span>
                <input name="default_country_code" value="<?= h($cfg['default_country_code']) ?>" dir="ltr" inputmode="numeric" placeholder="963">
                <small>أرقام فقط ودون علامة +.</small>
              </label>
              <label class="msg-field is-wide">
                <span>Phone Number ID</span>
                <input name="phone_number_id" value="<?= h($cfg['phone_number_id']) ?>" dir="ltr" inputmode="numeric" placeholder="123456789012345">
                <small>معرّف الرقم المرسل كما يظهر داخل Meta Business.</small>
              </label>
              <label class="msg-field is-wide wa-token-wrap">
                <span>Access Token</span>
                <input id="waAccessToken" type="password" name="access_token" value="<?= h($cfg['access_token']) ?>" dir="ltr" autocomplete="new-password" placeholder="EAAG...">
                <button class="wa-token-toggle" id="waTokenToggle" type="button" aria-label="إظهار أو إخفاء رمز الوصول"><i class="fa fa-eye"></i></button>
                <small>استخدم رمز وصول طويل الأمد، ولا تتم مشاركته أو عرضه تلقائياً.</small>
              </label>
              <label class="msg-field is-wide">
                <span>رقم الاختبار المحفوظ</span>
                <input name="test_recipient" value="<?= h($cfg['test_recipient']) ?>" dir="ltr" inputmode="tel" placeholder="9639XXXXXXXX">
              </label>
            </div>

            <div class="msg-form-actions">
              <button class="msg-primary-action" name="save" value="1"><i class="fa fa-save"></i><span>حفظ إعدادات واتساب</span></button>
            </div>
          </form>
        </section>

        <section class="msg-panel wa-test-panel">
          <div class="msg-panel-title">
            <i class="fa fa-paper-plane"></i>
            <div><small>DELIVERY TEST</small><h2>اختبار الإرسال الفعلي</h2></div>
          </div>

          <form method="post">
            <?php if (function_exists('ua_csrf_field')) ua_csrf_field(); ?>
            <div class="msg-form-grid">
              <label class="msg-field is-wide">
                <span>رقم واتساب</span>
                <input name="test_to" value="<?= h($_POST['test_to'] ?? $cfg['test_recipient']) ?>" dir="ltr" inputmode="tel" placeholder="9639XXXXXXXX">
              </label>
              <label class="msg-field is-wide">
                <span>نص الرسالة</span>
                <textarea name="test_text" placeholder="اكتب رسالة الاختبار هنا"><?= h($_POST['test_text'] ?? '') ?></textarea>
              </label>
            </div>
            <div class="msg-form-actions">
              <button class="msg-primary-action" name="test_send" value="1" onclick="return confirm('سيتم إرسال رسالة واتساب فعلية. متابعة؟');">
                <i class="fa fa-paper-plane"></i><span>إرسال رسالة الاختبار</span>
              </button>
            </div>
          </form>

          <div class="msg-inline-note">
            <i class="fa fa-info-circle"></i>
            <span>رقم المرسل مرتبط بـ Phone Number ID المعتمد في Meta Business، وتغييره يتم باختيار معرّف رقم آخر ثم حفظ الإعدادات.</span>
          </div>
        </section>
      </div>
    </div>
  </section>
</div>

<script>
(function(){
  const field = document.getElementById('waAccessToken');
  const toggle = document.getElementById('waTokenToggle');
  if (!field || !toggle) return;
  toggle.addEventListener('click', function(){
    const reveal = field.type === 'password';
    field.type = reveal ? 'text' : 'password';
    toggle.querySelector('i').className = reveal ? 'fa fa-eye-slash' : 'fa fa-eye';
  });
})();
</script>

<?php include __DIR__ . '/footer.php'; ?>
