<?php
declare(strict_types=1);

/**
 * admin_olustur.php
 * Çalıştırınca users tablosuna 1 adet admin ekler.
 * Şifre password_hash ile hashlenir.
 * Çalıştırdıktan sonra BU DOSYAYI SİL!
 */

// ---- AYARLAR (burayı istediğin gibi düzenle) ----
$USERNAME  = 'admin';
$PASSWORD  = 'Admin123!';        // ilk şifre (sonra değiştir)
$FULL_NAME = 'Sistem Yöneticisi';
$STATUS    = 'active';           // active | passive
$ROLE      = 'admin';            // admin | doctor | nurse | secretary | ik | idari_amir
// -------------------------------------------------

// DB include (core/db.php)
$dbFile = __DIR__ . '/core/db.php';
if (!is_file($dbFile)) $dbFile = __DIR__ . '/../core/db.php';
if (!is_file($dbFile)) {
  http_response_code(500);
  die("core/db.php bulunamadı.");
}
require_once $dbFile;

function is_pdo(): bool { return isset($GLOBALS['pdo']) && $GLOBALS['pdo'] instanceof PDO; }
function is_mysqli(): bool { return isset($GLOBALS['db']) && $GLOBALS['db'] instanceof mysqli; }

function user_exists(string $username): bool {
  if (is_pdo()) {
    $pdo = $GLOBALS['pdo'];
    $st = $pdo->prepare("SELECT 1 FROM users WHERE username=? LIMIT 1");
    $st->execute([$username]);
    return (bool)$st->fetchColumn();
  }
  if (is_mysqli()) {
    $db = $GLOBALS['db'];
    $st = $db->prepare("SELECT 1 FROM users WHERE username=? LIMIT 1");
    $st->bind_param("s", $username);
    $st->execute();
    $st->store_result();
    $exists = $st->num_rows > 0;
    $st->close();
    return $exists;
  }
  die("DB bağlantısı bulunamadı. core/db.php içinde \$db (mysqli) veya \$pdo (PDO) olmalı.");
}

function insert_user(string $username, string $hash, string $fullName, string $status, string $role): void {
  if (is_pdo()) {
    $pdo = $GLOBALS['pdo'];
    $st = $pdo->prepare("
      INSERT INTO users (username, password_hash, full_name, status, role, created_at, updated_at)
      VALUES (?, ?, ?, ?, ?, NOW(), NOW())
    ");
    $st->execute([$username, $hash, $fullName, $status, $role]);
    return;
  }
  if (is_mysqli()) {
    $db = $GLOBALS['db'];
    $st = $db->prepare("
      INSERT INTO users (username, password_hash, full_name, status, role, created_at, updated_at)
      VALUES (?, ?, ?, ?, ?, NOW(), NOW())
    ");
    $st->bind_param("sssss", $username, $hash, $fullName, $status, $role);
    $st->execute();
    $st->close();
    return;
  }
  die("DB bağlantısı bulunamadı.");
}

header("Content-Type: text/plain; charset=utf-8");

// Basit validasyon
if (strlen($USERNAME) < 3) die("Username çok kısa.\n");
if (strlen($PASSWORD) < 8) die("Şifre en az 8 karakter olmalı.\n");

// Zaten varsa dur
if (user_exists($USERNAME)) {
  echo "⚠️ '$USERNAME' zaten var. Yeni kayıt eklemedim.\n";
  echo "İstersen username değiştir veya DB'den silip tekrar çalıştır.\n";
  exit;
}

// Hashle ve ekle
$hash = password_hash($PASSWORD, PASSWORD_DEFAULT);
insert_user($USERNAME, $hash, $FULL_NAME, $STATUS, $ROLE);

echo "✅ Admin kullanıcı oluşturuldu.\n";
echo "Username: $USERNAME\n";
echo "Password: $PASSWORD\n";
echo "Role: $ROLE\n";
echo "Status: $STATUS\n\n";
echo "⚠️ Güvenlik: Bu dosyayı şimdi SİL (admin_olustur.php).\n";
