<?php
// seed_super_user.php
// ✅ إنشاء Super Admin آمن مهما كان هيكل جدول admin_users

// Stage 2: keep optional parent config if the deployment uses it, then load local DB bootstrap.
$__ua_parent_config = dirname(__DIR__) . '/config.php';
if (is_file($__ua_parent_config)) {
  require_once $__ua_parent_config;
}
require_once __DIR__ . '/db_bootstrap.php';
if (function_exists('ensure_db')) {
  ensure_db(true);
}
unset($__ua_parent_config);
require_once __DIR__ . '/helpers.php';
require_once __DIR__ . '/db_schema_helpers.php';

header('Content-Type: text/html; charset=utf-8');

function ua_seed_message(string $html): string {
  return '<link rel="stylesheet" href="assets/css/ua_program_unified.css?v=' . (int)(@filemtime(__DIR__ . '/assets/css/ua_program_unified.css') ?: 1) . '"><div class="ua-seed-message">' . $html . '</div>';
}

$uaSeedAllowed = (PHP_SAPI === 'cli') || (defined('UA_ALLOW_SEED_SUPER_USER') && UA_ALLOW_SEED_SUPER_USER);
if (!$uaSeedAllowed) {
  http_response_code(403);
  die(ua_seed_message('تم تعطيل أداة إنشاء Super Admin من الويب لأسباب أمنية. استخدم setup_first_admin.php أو فعّل UA_ALLOW_SEED_SUPER_USER مؤقتاً من config.php عند الحاجة.'));
}

$conn = $GLOBALS['conn'] ?? ($conn ?? null);
if (!($conn instanceof mysqli)) {
  die(ua_seed_message('خطأ: اتصال قاعدة البيانات غير جاهز'));
}

mysqli_report(MYSQLI_REPORT_OFF);


if(!table_exists($conn,'admin_users')){
  die(ua_seed_message('جدول admin_users غير موجود'));
}

$username = 'admin';
$password = '1234';
$full_name = 'Super Admin';
$permJson = '{"all":true}';

// ✅ أعمدة موجودة؟
$has_password_hash = col_exists($conn,'admin_users','password_hash');
$has_password      = col_exists($conn,'admin_users','password');
$has_full_name     = col_exists($conn,'admin_users','full_name');
$has_permissions   = col_exists($conn,'admin_users','permissions');
$has_is_active     = col_exists($conn,'admin_users','is_active');
$has_role_id       = col_exists($conn,'admin_users','role_id');
$has_username      = col_exists($conn,'admin_users','username');

if(!$has_username){
  die(ua_seed_message('خطأ: جدول admin_users لا يحتوي عمود username'));
}

// ✅ هل موجود من قبل؟
$uEsc = $conn->real_escape_string($username);
$exist = @$conn->query("SELECT id FROM admin_users WHERE username='$uEsc' LIMIT 1");
if($exist && $exist->num_rows){
  // ✅ تحديث صلاحياته بدل إنشاء
  $updates = [];
  $modernHash = password_hash($password, PASSWORD_DEFAULT);
  if($has_password_hash){
    $updates[] = "password_hash='".$conn->real_escape_string($modernHash)."'";
  }
  if($has_password){
    $updates[] = "password='".$conn->real_escape_string($modernHash)."'";
  }
  if($has_full_name){
    $updates[] = "full_name='".$conn->real_escape_string($full_name)."'";
  }
  if($has_permissions){
    $updates[] = "permissions='".$conn->real_escape_string($permJson)."'";
  }
  if($has_is_active){
    $updates[] = "is_active=1";
  }
  // لا نلمس role_id إذا غير موجود

  if($updates){
    @$conn->query("UPDATE admin_users SET ".implode(',', $updates)." WHERE username='$uEsc'");
  }

  echo ua_seed_message('
    ✅ المستخدم موجود مسبقًا وتم تحديثه كـ Super Admin.<br><br>
    <b>Username:</b> admin<br>
    <b>Password:</b> 1234<br><br>
    افتح: <a href="login.php">login.php</a>
  ');
  exit;
}

// ✅ إنشاء جديد
$cols = ['username'];
$vals = ["'".$conn->real_escape_string($username)."'"];
$modernHash = password_hash($password, PASSWORD_DEFAULT);

if($has_password_hash){
  $cols[]='password_hash';
  $vals[]="'".$conn->real_escape_string($modernHash)."'";
}
if($has_password){
  $cols[]='password';
  $vals[]="'".$conn->real_escape_string($modernHash)."'";
}
if($has_full_name){
  $cols[]='full_name';
  $vals[]="'".$conn->real_escape_string($full_name)."'";
}
if($has_permissions){
  $cols[]='permissions';
  $vals[]="'".$conn->real_escape_string($permJson)."'";
}
if($has_is_active){
  $cols[]='is_active';
  $vals[]="1";
}

// ✅ role_id فقط إذا كان موجود
if($has_role_id){
  $cols[]='role_id';
  $vals[]="NULL";
}

$sql = "INSERT INTO admin_users (".implode(',', $cols).") VALUES (".implode(',', $vals).")";
$ok = @$conn->query($sql);

if(!$ok){
  die(ua_seed_message('DB Error: '.htmlspecialchars((string)$conn->error, ENT_QUOTES, 'UTF-8')));
}

echo ua_seed_message('
  ✅ تم إنشاء Super Admin بنجاح.<br><br>
  <b>Username:</b> admin<br>
  <b>Password:</b> 1234<br><br>
  افتح: <a href="login.php">login.php</a>
');
