<?php
require __DIR__ . '/app/core.php';
app_send_security_headers();
app_send_no_cache_headers();

app_session_start();
if (!admin_is_logged_in()) {
    $_SESSION['zatca_admin_logged_in'] = true;
    $_SESSION['zatca_admin_user'] = 'admin';
    $_SESSION['zatca_admin_auth_at'] = time();
}

$error = null;
$flash = null;
$generatedKey = null;
$defaultAdminUser = admin_credentials()['username'] ?? 'admin';
$config = app_config();
$brandDisplayName = trim((string)($config['company']['brand_name'] ?? '')) ?: trim((string)($config['company']['name'] ?? '')) ?: APP_NAME;
$logoDataUri = image_data_uri(app_logo_path($config));

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $authAction = (string)($_POST['auth_action'] ?? '');
    $action = (string)($_POST['action'] ?? '');

    if (!csrf_validate($_POST['csrf_token'] ?? null)) {
        $error = 'انتهت جلسة الحماية أو الطلب غير صالح. حدّث الصفحة وحاول مرة أخرى.';
    } elseif ($authAction === 'login' && !admin_is_logged_in()) {
        [$ok, $msg] = admin_login((string)($_POST['username'] ?? ''), (string)($_POST['password'] ?? ''));
        if ($ok) {
            header('Location: admin.php');
            exit;
        }
        $error = $msg;
    } elseif ($action === 'logout' && admin_is_logged_in()) {
        admin_logout();
        header('Location: admin.php');
        exit;
    } elseif ($action === 'generate_key' && admin_is_logged_in()) {
        $requestCode = trim((string)($_POST['request_code'] ?? ''));
        $expiryDate = trim((string)($_POST['expiry_date'] ?? date('Y-m-d', strtotime('+30 days'))));
        if ($requestCode === '') {
            $error = 'Request Code مطلوب.';
        } else {
            $generatedKey = generate_activation_key($requestCode, $expiryDate);
            $flash = 'تم توليد مفتاح التفعيل بنجاح.';
        }
    } elseif ($action === 'change_credentials' && admin_is_logged_in()) {
        [$ok, $msg] = admin_change_password(
            (string)($_POST['current_password'] ?? ''),
            (string)($_POST['new_username'] ?? ''),
            (string)($_POST['new_password'] ?? ''),
            (string)($_POST['confirm_password'] ?? '')
        );
        if ($ok) $flash = $msg; else $error = $msg;
        $defaultAdminUser = admin_credentials()['username'] ?? 'admin';
    }
}
?><!doctype html>
<html lang="ar" dir="rtl">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>لوحة التفعيل</title>
  <style>
    :root{--bg:#0c0907;--bg-2:#17110c;--panel:#18110b;--panel-soft:#21170f;--text:#f6efe3;--muted:#ccb894;--line:rgba(197,161,106,.16);--primary:#c5a16a;--primary-2:#a87d47;--radius:22px;--shadow:0 20px 40px rgba(0,0,0,.24)}
    *{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:radial-gradient(circle at top left,rgba(197,161,106,.12),transparent 28%),linear-gradient(180deg,#0b0907 0%,#110d09 100%);color:var(--text);font-family:Inter,Tahoma,Arial,sans-serif;line-height:1.6}
    .wrap{max-width:1100px;margin:30px auto;padding:0 16px}.card{background:linear-gradient(180deg,rgba(24,17,11,.96),rgba(16,12,9,.97));border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);position:relative;overflow:hidden}.card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(229,201,141,.48),transparent)}
    input,textarea{width:100%;padding:12px;min-height:46px;border-radius:14px;border:1px solid rgba(197,161,106,.18);background:#0f0b08;color:var(--text);margin-top:8px}textarea{min-height:120px;resize:vertical}
    label{display:block;font-size:.92rem;color:#ead8b6;font-weight:700}.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;min-height:46px;border:none;border-radius:14px;background:linear-gradient(180deg,var(--primary),var(--primary-2));color:#1c130c;font-weight:900;cursor:pointer;text-decoration:none;box-shadow:0 10px 24px rgba(197,161,106,.22)}
    .btn2{background:#2a1d12;color:#f6efe3;box-shadow:none;border:1px solid rgba(197,161,106,.16)}.muted{color:var(--muted);line-height:1.7}.flash{margin:14px 0;padding:12px;border-radius:12px;background:rgba(22,163,74,.15);border:1px solid rgba(22,163,74,.35)}.error{margin:14px 0;padding:12px;border-radius:12px;background:rgba(220,38,38,.15);border:1px solid rgba(220,38,38,.35)}.mono{font-family:Consolas,monospace;direction:ltr;text-align:left;word-break:break-all}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.toolbar{display:flex;gap:12px;flex-wrap:wrap}.stack{display:grid;gap:14px}.small{font-size:13px;color:#e4d0aa}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(197,161,106,.12);border:1px solid rgba(197,161,106,.24)}
    .brand-lockup{display:grid;gap:12px;padding:14px;border-radius:20px;background:linear-gradient(180deg,rgba(197,161,106,.12),rgba(24,17,11,.35));border:1px solid rgba(197,161,106,.18);margin-bottom:18px}.brand-top{display:flex;align-items:center;gap:12px}.brand-logo{width:58px;height:58px;border-radius:16px;object-fit:cover;background:#fff;padding:4px;box-shadow:0 10px 24px rgba(0,0,0,.18)}.brand-kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#e4d0aa;font-weight:900}.brand-name{font-size:1.3rem;font-weight:900}
    @media(max-width:900px){.wrap{margin:22px auto;padding:0 14px}.row{grid-template-columns:1fr}}@media(max-width:640px){.wrap{margin:16px auto;padding:0 10px}.card{padding:18px;border-radius:16px}.top{align-items:stretch}.btn,.btn2{width:100%}}
  </style>
</head>
<body>
<div class="wrap">
<?php if (false): ?>
  <div class="card" style="max-width:460px;margin:32px auto 0">
    <div class="brand-lockup">
      <div class="brand-top">
        <?php if ($logoDataUri !== ''): ?><img class="brand-logo" src="<?= h($logoDataUri) ?>" alt="<?= h($brandDisplayName) ?>"><?php endif; ?>
        <div>
          <div class="brand-kicker">Activation Admin</div>
          <div class="brand-name"><?= h($brandDisplayName) ?></div>
        </div>
      </div>
      <div class="muted">لوحة مستقلة لتوليد مفاتيح التفعيل وإدارة دخول الأدمن.</div>
    </div>
    <h1 style="margin-top:0">لوحة التفعيل</h1>
    <div class="muted">تم تطبيق نفس ألوان البراند هنا، مع إلغاء بيانات الدخول الثابتة نهائيًا.</div>
    <?php if (!admin_has_credentials()): ?>
      <div class="error">لم يتم إعداد بيانات دخول الأدمن بعد. عيّن <code>BK_ADMIN_PASSWORD_HASH</code> أو حدّث ملف الإعدادات الآمن أولًا.</div>
    <?php endif; ?>
    <?php if ($error): ?><div class="error"><?= h($error) ?></div><?php endif; ?>
    <form method="post">
      <?= csrf_input() ?>
      <input type="hidden" name="auth_action" value="login">
      <label>اسم المستخدم</label>
      <input name="username" value="<?= h($defaultAdminUser) ?>" autocomplete="username">
      <label style="display:block;margin-top:14px">كلمة المرور</label>
      <input type="password" name="password" autocomplete="current-password" placeholder="أدخل كلمة المرور المرسلة مع النسخة">
      <button class="btn" type="submit" style="width:100%;margin-top:18px">دخول</button>
    </form>
  </div>
<?php else: ?>
  <div class="top">
    <div>
      <div class="brand-kicker">Activation Admin</div>
      <h1 style="margin:0"><?= h($brandDisplayName) ?> / لوحة التفعيل</h1>
      <div class="muted">توليد مفاتيح التفعيل وإدارة الإعدادات. تم فتح دخول الأدمن مباشرة في هذه النسخة.</div>
    </div>
    <div class="toolbar">
      <div class="pill">المستخدم الحالي: <strong><?= h((string)($_SESSION['zatca_admin_user'] ?? $defaultAdminUser)) ?></strong></div>
      <form method="post" style="margin:0">
        <?= csrf_input() ?>
        <input type="hidden" name="action" value="logout">
        <button class="btn btn2" type="submit">تسجيل خروج</button>
      </form>
    </div>
  </div>

  <?php if ($flash): ?><div class="flash"><?= h($flash) ?></div><?php endif; ?>
  <?php if ($error): ?><div class="error"><?= h($error) ?></div><?php endif; ?>

  <div class="row">
    <div class="card stack">
      <div>
        <h2 style="margin:0 0 8px">توليد مفتاح التفعيل</h2>
        <div class="small">المفتاح صار مرتبطًا بسرّ داخلي خاص بهذه النسخة، ولم يعد قابلًا لإعادة الإنتاج من كود ثابت مشترك.</div>
      </div>
      <form method="post" class="stack">
        <?= csrf_input() ?>
        <input type="hidden" name="action" value="generate_key">
        <div>
          <label>Request Code</label>
          <input class="mono" name="request_code" placeholder="REQ-XXXXXX-XXXXXX-XXXXXX-XXXXXX">
        </div>
        <div>
          <label>تاريخ انتهاء التفعيل</label>
          <input type="date" name="expiry_date" value="<?= h(date('Y-m-d', strtotime('+30 days'))) ?>">
        </div>
        <button class="btn" type="submit">توليد مفتاح التفعيل</button>
      </form>
      <?php if ($generatedKey): ?>
        <div>
          <label>Activation Key</label>
          <textarea class="mono" readonly><?= h($generatedKey) ?></textarea>
        </div>
      <?php endif; ?>
    </div>

    <div class="card stack">
      <div>
        <h2 style="margin:0 0 8px">تغيير بيانات دخول الأدمن</h2>
        <div class="small">هذه النسخة تفتح لوحة الأدمن مباشرة بدون طلب كلمة مرور.</div>
      </div>
      <form method="post" class="stack">
        <?= csrf_input() ?>
        <input type="hidden" name="action" value="change_credentials">
        <div>
          <label>اسم المستخدم الجديد</label>
          <input name="new_username" value="<?= h($defaultAdminUser) ?>" autocomplete="username">
        </div>
        <div>
          <label>كلمة المرور الحالية</label>
          <input type="password" name="current_password" autocomplete="current-password">
        </div>
        <div>
          <label>كلمة المرور الجديدة</label>
          <input type="password" name="new_password" autocomplete="new-password" placeholder="10 أحرف على الأقل">
        </div>
        <div>
          <label>تأكيد كلمة المرور الجديدة</label>
          <input type="password" name="confirm_password" autocomplete="new-password">
        </div>
        <button class="btn" type="submit">حفظ بيانات الدخول الجديدة</button>
      </form>
    </div>
  </div>
<?php endif; ?>
</div>
</body>
</html>
