<div class="content-wrapper android-voucher-settings">
  <main class="avs-main">
    <header class="avs-heading">
      <div><span>Voucher Preferences</span><h1>إعدادات الكروت</h1><p>خيارات التوليد والطباعة والمحاسبة في مكان واحد.</p></div>
      <a href="vouchers.php"><i class="fa fa-credit-card"></i><b>الكروت</b></a>
    </header>
    <nav class="avs-nav" aria-label="صفحات الكروت">
      <a href="vouchers.php"><i class="fa fa-credit-card"></i><span>الكروت</span></a><a href="vouchers_generate.php"><i class="fa fa-magic"></i><span>توليد</span></a><a href="vouchers_print.php"><i class="fa fa-print"></i><span>طباعة</span></a><a class="is-active" href="vouchers_settings.php"><i class="fa fa-cog"></i><span>إعدادات</span></a>
    </nav>
    <?php if ($msg): ?><div class="avs-notice is-success"><i class="fa fa-check-circle"></i><span><?= h($msg) ?></span></div><?php endif; ?>
    <?php if ($err): ?><div class="avs-notice is-error"><i class="fa fa-exclamation-circle"></i><span><?= h($err) ?></span></div><?php endif; ?>
    <form class="avs-form" method="post" data-ua-android-native-layout>
      <input type="hidden" name="csrf_token" value="<?= h($csrf) ?>">
      <section class="avs-card">
        <div class="avs-title"><i class="fa fa-sliders"></i><div><span>Basic Settings</span><h2>الإعدادات الأساسية</h2></div></div>
        <label><span>Hotspot Profile الافتراضي</span><small>يستخدم عندما لا يحدد الصنف بروفايل خاصاً.</small><input name="voucher_hotspot_profile" value="<?= h($voucher_hotspot_profile) ?>" placeholder="voucher" dir="ltr"></label>
        <div class="avs-grid"><label><span>ورق الطباعة</span><select name="voucher_default_paper"><option value="A4" <?= $voucher_default_paper==='A4'?'selected':'' ?>>A4</option><option value="80MM" <?= $voucher_default_paper==='80MM'?'selected':'' ?>>80mm</option><option value="58MM" <?= $voucher_default_paper==='58MM'?'selected':'' ?>>58mm</option></select></label><label><span>طول الكود</span><input type="number" name="voucher_code_length" value="<?= (int)$voucher_code_length ?>" min="4" max="32" inputmode="numeric"></label></div>
        <label><span>بادئة الكود</span><input name="voucher_code_prefix" value="<?= h($voucher_code_prefix) ?>" placeholder="مثال: IM-" dir="ltr"></label>
        <label class="avs-switch"><input type="checkbox" name="auto_export_on_print" <?= $voucher_auto_export_on_print==='1'?'checked':'' ?>><span><b>تصدير عند أول طباعة</b><small>يمنع تكرار إنشاء الكرت على MikroTik عند إعادة الطباعة.</small></span></label>
        <label class="avs-switch"><input type="checkbox" name="voucher_time_wallclock" <?= $voucher_time_wallclock==='1'?'checked':'' ?>><span><b>المدة من أول تسجيل دخول</b><small>يستمر الوقت حتى عند فصل المستخدم ويعتمد على Scheduler.</small></span></label>
      </section>
      <details class="avs-card avs-details">
        <summary><span class="avs-title"><i class="fa fa-exchange"></i><span><small>Voucher Accounting</small><strong>محاسبة استهلاك الكروت</strong></span></span><i class="fa fa-angle-down"></i></summary>
        <div class="avs-details-body">
          <p>يرسل MikroTik عدادات الاستهلاك دورياً للحصول على تقارير أدق والقطع عند بلوغ الحد.</p>
          <label class="avs-switch"><input type="checkbox" name="voucher_acct_enabled" <?= $voucher_acct_enabled==='1'?'checked':'' ?>><span><b>تفعيل Accounting</b><small>فعّلها بعد ضبط الرابط والمفتاح السري.</small></span></label>
          <label><span>رابط Endpoint</span><input name="voucher_acct_endpoint_url" value="<?= h($voucher_acct_endpoint_url) ?>" placeholder="http://SERVER-IP/.../voucher_accounting_endpoint.php" dir="ltr" inputmode="url"></label>
          <label><span>الفاصل الزمني</span><input name="voucher_acct_interval" value="<?= h($voucher_acct_interval) ?>" placeholder="5m" dir="ltr"><small>مثال: 1m أو 5m أو 10m</small></label>
          <label><span>المفتاح السري</span><div class="avs-input-action"><input id="androidAcctSecret" name="voucher_acct_secret" value="<?= h($voucher_acct_secret) ?>" placeholder="مفتاح الحماية" dir="ltr"><button type="button" id="androidGenSecret">توليد</button></div></label>
          <label><span>عناوين الراوتر المسموحة</span><input name="voucher_acct_allowed_ips" value="<?= h($voucher_acct_allowed_ips) ?>" placeholder="10.30.99.1, 10.30.99.2" dir="ltr"><small>اتركه فارغاً للسماح للجميع.</small></label>
        </div>
      </details>
      <button class="avs-save" type="submit"><i class="fa fa-save"></i><span>حفظ الإعدادات</span></button>
    </form>
    <details class="avs-card avs-details avs-advanced">
      <summary><span class="avs-title"><i class="fa fa-wrench"></i><span><small>Advanced Tools</small><strong>أدوات MikroTik المتقدمة</strong></span></span><i class="fa fa-angle-down"></i></summary>
      <div class="avs-details-body">
        <article><div><b>تثبيت Accounting</b><p>يثبّت أو يحدّث Script وScheduler على MikroTik.</p></div><details><summary>متابعة</summary><button type="button" data-avs-action="install_voucher_acct">تأكيد التثبيت</button></details></article>
        <article><div><b>ترقية الكروت القديمة</b><p>تحويل كروت vouchers القديمة إلى نظام المدة من أول دخول.</p></div><label><span>حجم الدفعة</span><input id="androidUpgradeLimit" type="number" value="300" min="10" max="2000" inputmode="numeric"></label><details><summary>متابعة</summary><button type="button" data-avs-action="upgrade_legacy_wallclock">تأكيد الترقية</button></details></article>
        <div id="androidVoucherActionResult" class="avs-result" hidden></div>
      </div>
    </details>
  </main>
</div>
<script>
(function(){
  const secret=document.getElementById('androidAcctSecret');
  document.getElementById('androidGenSecret')?.addEventListener('click',function(){const chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';let value='';if(window.crypto?.getRandomValues){const data=new Uint32Array(32);crypto.getRandomValues(data);data.forEach(n=>value+=chars[n%chars.length]);}else{for(let i=0;i<32;i++)value+=chars[Math.floor(Math.random()*chars.length)];}secret.value=value;});
  const result=document.getElementById('androidVoucherActionResult');
  document.querySelectorAll('[data-avs-action]').forEach(button=>button.addEventListener('click',async function(){button.disabled=true;result.hidden=false;result.className='avs-result';result.textContent='جارٍ تنفيذ العملية…';try{const body=new URLSearchParams({action:button.dataset.avsAction,csrf_token:<?= json_encode($csrf, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES) ?>});if(button.dataset.avsAction==='upgrade_legacy_wallclock')body.set('limit',document.getElementById('androidUpgradeLimit').value||'300');const response=await fetch('vouchers_api.php',{method:'POST',credentials:'same-origin',headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'},body});const data=await response.json();result.className='avs-result '+(data.ok?'is-success':'is-error');result.textContent=data.ok?(data.message||'تمت العملية بنجاح'):(data.error||'تعذر تنفيذ العملية');}catch(error){result.className='avs-result is-error';result.textContent='تعذر الاتصال بالخادم: '+error.message;}finally{button.disabled=false;}}));
})();
</script>
