<?php
require_once __DIR__ . '/../config.php';

/* ================== AYARLAR ================== */
$limit      = 350; // 🎯 Kaç tane bot eklensin?
$basePath   = '/home/heysen/public_html/app.heysen.net/';
$sourceDir  = __DIR__ . '/nassib_resim/';
$usedDir    = __DIR__ . '/nassib_resim/kullanildi/';
$peopleDir  = $basePath . 'assets/people/';
$thumbDir   = $basePath . 'assets/people/thumb/';
$soyisimTxt = __DIR__ . '/soyisim.txt';

/* ================== DİZİN KONTROL VE OLUŞTURMA ================== */
if (!is_dir($usedDir)) {
    mkdir($usedDir, 0755, true);
}

foreach ([$peopleDir, $thumbDir, $usedDir] as $dir) {
    if (!is_dir($dir) || !is_writable($dir)) {
        die("❌ Yazılabilir değil: {$dir}");
    }
}

/* ================== YARDIMCI FONKSİYONLAR ================== */
function sansur($s) {
    return mb_substr($s, 0, 1, 'UTF-8')
        . str_repeat('*', max(1, mb_strlen($s, 'UTF-8') - 2))
        . mb_substr($s, -1, 1, 'UTF-8');
}

/* ================== TÜM RESİMLERİ AL ================== */
$images = glob($sourceDir . '*.jpg');
if (!$images) die('❌ Kaynak resim yok');

shuffle($images); // Karıştır

// Limiti uygula
$images = array_slice($images, 0, $limit);

echo "<h2>🚀 TOPLU BOT OLUŞTURMA BAŞLADI</h2>";
echo "<p>Kaynak klasörde: <strong>" . count(glob($sourceDir . '*.jpg')) . "</strong> resim var</p>";
echo "<p>İşlenecek: <strong>" . count($images) . "</strong> adet</p>";
echo "<hr>";

/* ================== SOYİSİMLERİ YÜKLE ================== */
$soyisimler = file($soyisimTxt, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (!$soyisimler) die('❌ Soyisim dosyası okunamadı');

/* ================== İSTATİSTİKLER ================== */
$basarili = 0;
$hatali = 0;
$hatalar = [];

/* ================== HER RESMİ İŞLE ================== */
foreach ($images as $index => $srcImage) {
    $srcName = basename($srcImage);
    $siralama = $index + 1;
    
    echo "<div style='padding: 10px; margin: 5px 0; background: #f5f5f5; border-left: 4px solid #007bff;'>";
    echo "<strong>[$siralama/" . count($images) . "]</strong> {$srcName} işleniyor...<br>";
    
    try {
        /*
        | Format: ID_ISIM_YAS.jpg
        */
        $parts = explode('_', str_replace('.jpg', '', $srcName));
        if (count($parts) < 3) {
            throw new Exception('Resim adı formatı hatalı');
        }

        $isim = mb_convert_case($parts[1], MB_CASE_TITLE, 'UTF-8');
        $yas  = (int)$parts[2];

        /* ================== SOYİSİM ================== */
        $soyisim = trim($soyisimler[array_rand($soyisimler)]);

        $user_fullname     = $isim . ' ' . sansur($soyisim);
        $user_fullname_old = $isim . ' ' . $soyisim;

        /* ================== BENZERSİZ USER_ID ================== */
        do {
            $user_id = rand(100000, 999999);
            $q = $db->prepare("SELECT 1 FROM kullanicilar WHERE user_id = ?");
            $q->execute([$user_id]);
        } while ($q->fetch());

        /* ================== RANDOM BOY & KİLO ================== */
        $user_boy  = rand(150, 180);
        $user_kilo = rand(45, 85);

        /* ================== DOSYA ADLARI ================== */
        $hash = md5($user_id . uniqid('', true));

        $mainFile  = $hash . '.jpg';
        $thumbFile = $hash . '_thumb.jpg';

        $mainFS  = $peopleDir . $mainFile;
        $thumbFS = $thumbDir . $thumbFile;

        $dbImagePath = 'assets/people/' . $mainFile;

        /* ================== RESİM KOPYALA ================== */
        if (!copy($srcImage, $mainFS)) {
            throw new Exception('Resim kopyalanamadı');
        }

        /* ================== THUMB 200x200 ================== */
        $src = imagecreatefromjpeg($mainFS);
        $w = imagesx($src);
        $h = imagesy($src);

        $thumb = imagecreatetruecolor(200, 200);
        imagecopyresampled($thumb, $src, 0, 0, 0, 0, 200, 200, $w, $h);
        imagejpeg($thumb, $thumbFS, 85);

        imagedestroy($src);
        imagedestroy($thumb);

        /* ================== DB INSERT ================== */
        $sql = "
        INSERT INTO kullanicilar (
            user_id,
            user_fullname,
            user_fullname_old,
            user_email,
            user_pass,
            user_picture,
            user_yas,
            user_cinsiyet,
            user_boy,
            user_kilo,
            user_sehir,
            user_ip,
            user_jeton,
            user_kayit,
            user_songiris,
            user_bot,
            user_onay
        ) VALUES (
            :user_id,
            :fullname,
            :fullname_old,
            :email,
            :pass,
            :picture,
            :yas,
            'kadin',
            :boy,
            :kilo,
            'İstanbul',
            '::0',
            5,
            :kayit,
            :songiris,
            1,
            0
        )";

        $stmt = $db->prepare($sql);
        $ok = $stmt->execute([
            ':user_id'      => $user_id,
            ':fullname'     => $user_fullname,
            ':fullname_old' => $user_fullname_old,
            ':email'        => 'fake@fake.com',
            ':pass'         => md5('123456'),
            ':picture'      => $dbImagePath,
            ':yas'          => $yas,
            ':boy'          => $user_boy,
            ':kilo'         => $user_kilo,
            ':kayit'        => time(),
            ':songiris'     => time()
        ]);

        if (!$ok) {
            throw new Exception('DB INSERT HATASI');
        }

        /* ================== RESMİ KULLANILDI KLASÖRÜNE TAŞI ================== */
        if (!rename($srcImage, $usedDir . $srcName)) {
            // Taşıma hatası olursa sadece uyar ama devam et
            echo "⚠️ Resim taşınamadı (kullanıldı klasörüne)<br>";
        }

        /* ================== BAŞARILI ================== */
        echo "✅ <strong style='color: green;'>BAŞARILI</strong><br>";
        echo "→ ID: {$user_id} | İsim: {$user_fullname} | Yaş: {$yas} | Boy/Kilo: {$user_boy}/{$user_kilo}<br>";
        $basarili++;

    } catch (Exception $e) {
        echo "❌ <strong style='color: red;'>HATA:</strong> " . $e->getMessage() . "<br>";
        $hatali++;
        $hatalar[] = "{$srcName}: " . $e->getMessage();
    }
    
    echo "</div>";
    flush();
    ob_flush();
}

/* ================== ÖZET RAPOR ================== */
echo "<hr>";
echo "<h2>📊 İŞLEM TAMAMLANDI</h2>";
echo "<div style='padding: 20px; background: #e8f5e9; border: 2px solid #4caf50; border-radius: 5px;'>";
echo "<p><strong>✅ Başarılı:</strong> {$basarili}</p>";
echo "<p><strong>❌ Hatalı:</strong> {$hatali}</p>";
echo "<p><strong>📁 Toplam:</strong> " . count($images) . "</p>";
echo "</div>";

if (count($hatalar) > 0) {
    echo "<hr>";
    echo "<h3>⚠️ Hata Detayları:</h3>";
    echo "<ul>";
    foreach ($hatalar as $hata) {
        echo "<li>{$hata}</li>";
    }
    echo "</ul>";
}
