<?php
require_once(dirname(__DIR__, 2) . '/init.php');

// Güvenlik için sadece admin girişi yapmış kullanıcılara izin ver
if (!m_admin_check()) {
    die('Bu sayfaya erişim için admin girişi yapmalısınız.');
}

$action = $_GET['action'] ?? '';

if ($action === 'create') {
    // Önce tablo yapısını kontrol et
    echo "<h3>Admins Tablosu Yapısı:</h3>";
    try {
        $table_info = $db->query("DESCRIBE admins");
        if ($table_info) {
            echo "<table border='1' style='border-collapse: collapse;'>";
            echo "<tr><th>Alan</th><th>Tip</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
            $table_fields = [];
            while ($row = $table_info->fetch(PDO::FETCH_ASSOC)) {
                $table_fields[] = $row['Field'];
                echo "<tr>";
                echo "<td>{$row['Field']}</td>";
                echo "<td>{$row['Type']}</td>";
                echo "<td>{$row['Null']}</td>";
                echo "<td>{$row['Key']}</td>";
                echo "<td>{$row['Default']}</td>";
                echo "<td>{$row['Extra']}</td>";
                echo "</tr>";
            }
            echo "</table>";
            
            echo "<h3>Mevcut Alanlar:</h3>";
            echo "<pre>" . print_r($table_fields, true) . "</pre>";
        }
    } catch (Exception $e) {
        echo "Tablo yapısı alınamadı: " . $e->getMessage();
        return;
    }
    
    $email = 'admin@test.com';
    $password = 'Admin123!';
    
    // Önce kullanıcının var olup olmadığını kontrol et
    $existing = $db->table('admins')->where('email', '=', $email)->get();
    
    if (!empty($existing['data'])) {
        echo "Admin kullanıcısı zaten mevcut!<br>";
        echo "Email: {$email}<br>";
        echo "Şifre: {$password}<br>";
        echo "<a href='?action=update'>Şifreyi güncelle</a>";
    } else {
        // Tablo yapısına göre veri hazırla
        $admin_data = [
            'email' => $email,
            'password' => m_password_secure($password)
        ];
        
        // Opsiyonel alanları kontrol et ve ekle
        if (in_array('name', $table_fields)) {
            $admin_data['name'] = 'Test Admin';
        }
        if (in_array('status', $table_fields)) {
            $admin_data['status'] = 1;
        }
        if (in_array('created_at', $table_fields)) {
            $admin_data['created_at'] = $db->now();
        }
        if (in_array('updated_at', $table_fields)) {
            $admin_data['updated_at'] = $db->now();
        }
        
        echo "<h3>Oluşturulacak Veri:</h3>";
        echo "<pre>" . print_r($admin_data, true) . "</pre>";
        
        $result = $db->table('admins')->insert($admin_data);
        
        if ($result) {
            echo "<h3>Başarılı!</h3>";
            echo "Admin kullanıcısı başarıyla oluşturuldu!<br>";
            echo "Email: {$email}<br>";
            echo "Şifre: {$password}<br>";
            echo "<a href='../login_secure.php'>Güvenli Login'e Git</a>";
        } else {
            echo "<h3>Hata Detayları:</h3>";
            echo "Veritabanı hatası: " . $db->error() . "<br>";
        }
    }
} elseif ($action === 'update') {
    $email = 'admin@test.com';
    $password = 'Admin123!';
    
    // Şifreyi güncelle
    $update_data = [
        'password' => m_password_secure($password)
    ];
    
    // Opsiyonel alanları kontrol et
    if (in_array('updated_at', $table_fields)) {
        $update_data['updated_at'] = $db->now();
    }
    
    $result = $db->table('admins')->where('email', '=', $email)->update($update_data);
    
    if ($result) {
        echo "Admin şifresi güncellendi!<br>";
        echo "Email: {$email}<br>";
        echo "Yeni Şifre: {$password}<br>";
        echo "<a href='../login_secure.php'>Güvenli Login'e Git</a>";
    } else {
        echo "Hata: Şifre güncellenemedi!<br>";
        echo "Veritabanı hatası: " . $db->error();
    }
} elseif ($action === 'list') {
    // Mevcut admin kullanıcılarını listele
    $admins = $db->table('admins')->get();
    
    echo "<h2>Mevcut Admin Kullanıcıları</h2>";
    if (!empty($admins['data'])) {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr><th>ID</th><th>Email</th><th>Ad</th><th>Durum</th><th>Son Giriş</th><th>Şifre Tipi</th></tr>";
        
        foreach ($admins['data'] as $admin) {
            $password_type = strlen($admin['password']) > 32 ? 'Güvenli (Argon2ID)' : 'Eski (MD5)';
            $status = isset($admin['status']) && $admin['status'] == 1 ? 'Aktif' : 'Pasif';
            $name = isset($admin['name']) ? $admin['name'] : '-';
            
            echo "<tr>";
            echo "<td>{$admin['id']}</td>";
            echo "<td>{$admin['email']}</td>";
            echo "<td>{$name}</td>";
            echo "<td>{$status}</td>";
            echo "<td>{$admin['last_login']}</td>";
            echo "<td>{$password_type}</td>";
            echo "</tr>";
        }
        echo "</table>";
    } else {
        echo "Hiç admin kullanıcısı bulunamadı!";
    }
    
    echo "<br><a href='?'>Ana Sayfaya Dön</a>";
} else {
    echo "<h2>Admin Kullanıcısı Yönetimi</h2>";
    echo "<p>Bu script test için admin kullanıcısı oluşturur ve yönetir.</p>";
    echo "<a href='?action=create'>Test Admin Kullanıcısı Oluştur</a><br>";
    echo "<a href='?action=update'>Test Admin Şifresini Güncelle</a><br>";
    echo "<a href='?action=list'>Mevcut Admin Kullanıcılarını Listele</a><br>";
    echo "<a href='../login_secure.php'>Güvenli Login'e Git</a><br>";
    echo "<a href='../login.php'>Eski Login'e Git</a>";
}
?> 