<?php
include '../../config.php';
include '../sehir.php'; // Şehir fonksiyonlarını dahil et

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

/* ═══════════════════════════════════════════════════════════════════
 * 🎛️ KONTROL PANELİ - Buradan ayarları yapabilirsiniz
 * ═══════════════════════════════════════════════════════════════════ */

// TEST MODU: true = Sadece test kullanıcısına gönder | false = Tüm aktif kullanıcılara gönder
$TEST_MODE = false;
$TEST_USER_ID = 975267; // Test kullanıcısının ID'si

// BİLDİRİM: true = OneSignal bildirimi gönder | false = Bildirim gönderme
$SEND_NOTIFICATION = true;

// RASTGELE ÇALIŞMA: true = %50 şansla çalışır | false = Her zaman çalışır
$RANDOM_RUN = true;

/* ═══════════════════════════════════════════════════════════════════ */

// Performans ölçümü
$startTime = microtime(true);

// %50 ihtimalle çalışma kontrolü
if ($RANDOM_RUN) {
    $rand = rand(0, 1);
    if ($rand !== 0) {
        die("⚠️ Rastgele çalışma: Bu sefer çalışmadı (şans: {$rand}/1)");
    }
}

// Mesaj havuzu - buraya istediğiniz mesajları ekleyebilirsiniz
$mesajlar = [
    'Merabaa biraz konuşabilirmiyiz',
    'Slm konuşak mı',
    'naber nasılsın',
    'napiyosun',
    'Selam tanışalım mı',
    'Merhaba {isim} sohbet edelim mi',
    'Mrb müsaitsen konuşalım',
    'Slm nasılsın',
    'Selam konuşalım mı',
    'Mrhb sohbet edelim mi',
    'Slm vitrinde seni gördüm tanışalım mı',
    'Selam {isim} en üstte vardın profilini merak ettim',
    'Merhaba en yakında seni gördüm yakınımdasın galiba',
    'Slm vitrinde sen vardın ilgimi çektin',
    'Selam az önce en üstte seni görmüştüm ben {bot_isim}',
    'Mrb yakınımda gözüktün',
    'Mrhb en yakında senin profili vardı merak ettim',
    'Slm vitrinde seni gördüm',
    'Selam en üstte sen vardın yazmak istedim',
    'Merhaba yakınımdaymışsın görebildiğime göre',
    'Slm {isim} vitrinde seni fark ettim',
    'Selam müsaitsen sohbet edelim',
    'Mrhb bıktım bu uygulamadan ama sen ilgimi çektin ben {bot_isim}',
    'Slm bugün canım çok sıkkın biriyle konuşmak istedim',
    'Mrb sen farklı geldin bana',
    'Selam naber',
    'Slm ne yapıyosun {isim}',
    'Mrb müsait misin',
    'Slm sıkılmadın mı daha',
    'Selam iyi birgün olması dileğiyle nasılsın müsaitsen biraz sohbet edebilirmiyiz canım baya sıkkında belki senle konuşmak iyi gelir',
    'Selam sana bi konu hakkında danışabilir miyim',
    'Merhaba canım içimi döküp dertleşebileceğim birisini arıyorum konuşalım istersen bugün ben {bot_isim}',
    'Nasıl gidiyor sıkıcı hayat',
    'Merhabalar nasılsınız {isim}',
    'Napıyosun napıyosun napıyosun',
    'Merhaba sana biraz içimi dökmek istiyorum müsaitsen',
    'Naber nasılsın',
    'Konuşalım mı biraz',
    'Selam canım ben {bot_isim}',
    'Modum çok düşük aşırı canım sıkkın biraz konuşsak mı',
    'Sen hiç aşık oldun mu ben pek aşka inanan biri değilimde',
    'Naber tanışma şansımız var mı işin yoksa {isim}',
    'Uzun zaman önce buraya birini bulmak için üye oldum ama hala yalnızım baya şanslıyım değilmi',
    'Vaktin var mı sohbet edelim mi',
    'Selam çevrimiçi gördüğüm için yazıyorum müsaitsen sohbet edelim mi',
    'Slm müsaitsen sohbet edelimmi ne dersin ben {bot_isim}',
    'Napıyorsun {isim} rahatsız etmiyorum umarım çevrimiçi gördüğüm için yazmak istedim',
    'Merhaba bebeğim nasılsın ben {bot_isim}',
    'Heeeeeeey naber orda mısın canım',
    'Mrbb naber buralardaysan konuşalımmı ben {bot_isim}',
    'Ya bu uygulamada mesaj atmak sınırlı mı anlamadım sende nasıl',
    'Nasılsın bebeğim tanışalım mı',
    'Selam güzel bir muhabbet ile aramızdaki yabancılığı samimiyete çevirelim mi',
    'Pişt pişt gel bakim buraya napıyosun hemen anlat yoksa bi kedi gibi tırmalarım seni',
    'Merhaba şekerim napıyosun {isim}',
    'Merhaba benim için çok garip bir gün oluyor senin nasıl geçiyor günün',
    'Merhaba sana her konuda güvenebilir miyim ona göre bir konu hakkında konuşcam',
    'Ciddi arkadaşlık kurmak için burdayım ya sen',
    'Selam canım naber ben {bot_isim} {sehirliyim}',
    'Çok bunaldım konuşacak harbi bir adam arıyorum',
    'Nedense bugünlerde çok sıkılıyorum anlamıyorum {isim} biraz senle sohbet edebilir miyiz rica etsem',
    'Selam ciddi düşünen biri çıkmadı daha karşıma şu uygulamada sen ne amaçla burdasın',
    'Selam naber :)',
    'Tanımadığım biri ile saatlerce konuşmak istiyorum sana uyarmı bide {sehirlimisin}',
    'Naber tanışma şansımız varmı bi işin yoksa canım',
    'Merhabalar efenim ben {bot_isim}',
    'Merhabaaaaaa',
    'Off ya bugün erken kalktım da gün bitmek bilmiyor baya sıkıcı o yüzden buraya üye oldum kimse mesaj atmamış bari ben atayım dedim',
    'Ne desem bilemedim utandım neyse bir selam vereyim adettendir',
    'Slm tanışalım mı',
    'Sellammm :)',
    'Merhaba ben mesajlaşmayı sevmiyorum konuşmak istiyorum telefonla konuşmak isterim sizle numaramı versem ararmısın konuşmaya ihtiyacım var',
    'Selam nasılsın napıyosun {isim}',
    'İyi günler şekerim nasılsın konuşmak için aradığın bi özellik varmı',
    'Naber canım seks yapmak istedi müsaitmisin',
    'Sonunda bende mutsuzlar kervanına katıldım dün ayrıldık artık bi sevgilim yok',
    'Selam vaktin varsa bi yemek ısmarlasana birbirimizi tanıyalım hem o sırada olmaz mı {isim}',
    'Merhaba napiyorsun sohbet edelimmi ya bugün canım sıkkında biraz',
    'Gözlerin benim gibi güzel mi eğer öyleyse tanışalım gözlere çok önem veririm {isim}',
    'selam zalım :)',
    'Merhaba',
    'Evlilik için mi buraya kaydoldunuz',
    'Merhaba nasılsınız',
    'slm',
    'selam canım',
    'Mrb naslsn',
    'Çok mu çirkinim ben neden cevap vermiyor kimse',
    'Bir kahvenin 40 yıl hatrı var derler içelim mi yarın',
    'Selamm',
    'Afedersin yakışıklı bana bi bakar mısın',
    'Merhabaa canımm',
    'Bişey dicem ya ordaysan özel bir konuda',
    'Selam canım burası ücretli galiba anlamadım ben',
    'Yarın akşam müsaitsen birşeyler içelim mi',
    'Sana bir şey sorabilir miyim',
    'Selamunaleyküm',
    'Selamm canımm',
    'Selamlar ben beyza konuşalım mı',
    'Merhabaaaa',
    'selam',
    'Müsaitsen konuşmak tanışmak ister misin',
    'Selam napıyosun',
    'Selamın aleyküm ciddi bi ilişki arıyorum bi arkadaşım bu uygulama sayesinde kocasıyla tanıştı ve evlendi eğer niyetiniz ciddiyse konuşalım',
    'Merhaba bir şey sorucam sana {isim}',
    'Heyyy naberr',
    'Selamm ben {bot_isim}',
    'Selam ben ciddi bi evlilik arıyorum yalanı dolanı sevmem bana ne kadar dürüst olursan o kadar iyi benimle aynı fikirdeysen tanışmaya ne dersin',
    'Merhaba ben {bot_isim} {sehirliyim}',
    'Selam ben {bot_isim} tanışalım mı',
    'Merhaba benim adım {bot_isim} tanışmak ister misin',
    'Müsaitsen özel bir şeyler yapalımmı bu gece istermisin',
    'İçimde bi ateş var söndürecek kimsede yok yanımda',
    'Arzuları olan genç bir kızım beni burda tatmin edebilir misin',
    'Slm ücretli görüşüyorum',
    'Merhaba benimle ciddi düşünmeyecek seks tadında arkadaşlık arıyorum kabul edersen tanışalım derim',
    'Selam tek başıma yaşıyorum masrafları çok gelmeye başladı beraber yaşayabileceğim birini arıyorum siz {sehirdemi} yaşıyorsunuz',
    'Naber ya deliler gibi eğlenmek istiyorum bugün müsait misin eğlenmek için bide {sehrinneresinden}',
    'Sırf zevkine ücretsiz seks yapıyorum tam bir seks düşkünüyüm müsaitsen bugün senle sevişmek istiyorum olur mu',
    'Selam ben {bot_isim} {bot_yas} yaşındayım',
    'Merhaba adım {bot_isim} {bot_yas} yaşındayım sen {yas} yaşındasın değil mi',
    'Slm {isim} gerçekten {yas} yaşında mısın',
    'Selam {isim} yakınımda seni gördüğüm için yazıyorum sohbet edelim mi',
    'Merhaba {isim} {sehirdemi} yaşıyorsun',
    'Slm ben {bot_isim} {sehirliyim} sen {sehirlimisin}',
    'Selam canım gerçekten {yas} yaşında mısın',
    'Bugün aşırı azgınım biriyle konuşmam lazım',
    'Islak islağım suan birazdan duş alcam sen ne yapıyorsun {isim}',
    'Memelerimi okşamaktan yoruldum artık senin ellerine ihtiyacım var',
    'Göğüslerim çok hassas bugün dokunsan çığlık atacam herhalde {isim}',
    'Bacak arası fotoğraflarıma amıma götüme bakıp 31 çekermisin',
    'Sana oral seks yapmayı çok istiyorum dudaklarımla {isim}',
    'Bugün öyle bi sikiş istiyorum ki tavanları inleticem',
    'Am yalamayı seviyor musun çünkü ben bayılıyorum yalatmaya',
    'İçime boşalmak ister misin prezervatif kullanmadan {isim}',
    'Götümü sikmek ister misin hiç denemedim ama seninle deneyebilirim',
    'Amcığımın üstünü dilinin ucuyla okşa sonra parmağınla devam et',
    'Ağzıma boşal yutmayı seviyorum {isim} bende sana sakso çekerim',
    'Suan o kadar ıslağım ki külodumu değiştirmem gerekti',
    'Memelerimi emerken parmağını içime sokabilir misin aşkım',
    'Kucağına oturup sana sürtünmek istiyorum',
    'Duştan çıktım üzerimde hiçbir şey yok suan ne yapmalıyım',
    'Bacaklarımı omzuna alıp sikebilir misin beni {isim} çok hosuma gidiyo öyle',
    'Boşalırken inlemeye bayılırım ses çıkarmama izin verir misin yoksa ağzımı mı tutarsın',
    'İçimde sertçe hissetmek istiyorum seni {isim}',
    'Yalamaktan çeneme kramp girene kadar devam ederim',
    'Arkadan almayı denemeye hazırım suan',
    'Ağzımda büyüdüğünü hissetmek istiyorum',
    'Dudaklarımın arasında eriyene kadar emebilirim {isim}',
    'Sabaha kadar sikişmek için enerjim var bugün {sehirdemi} yaşıyorsun sen',
    'İçime parmağını sok kaç parmak alabiliyorum görelim',
    '{isim} bugün evdeyim yalnızım gel sikişelim',
    'Slm {isim} {sehirdemi} yaşıyorsun yakınsan gelelim senle sikişek',
    '{isim} amımı yalatmak istiyorum {sehirdemi} yaşıyorsun yakınsan buluşalım',
    'Selam {isim} {yas} yaşındasın çok genç değil mi ama olsun sikişebiliriz',
    'Amcığım sırılsıklam suan parmağını soksan kayar gider içime',
    'Am dudaklarımı ayırıp dilini sok içeri',
    'Amcık sularım akıyor resmen yalamaya gelir misin',
    'Amımın içi kasılıyor sikine ihtiyacım var',
    '{isim} amcığımı parmaklarmısın önce sonra sikersin',
    'Pembe amcığımı görmek ister misin fotoğraf atarım',
    'Amımı yalarken götüme parmak sokar mısın',
    'Daracık amcığıma sığar mı acaba senin ki',
    'Am suyum tadına bakmak ister misin',
    '{isim} amcığıma dilini sokta içimi yala',
    'Sana sakso çekmek istiyorum dudaklarımla sarıp emek istiyorum',
    '{isim} diz çöküp sana sakso çeksem olur mu',
    'Sakso çekerken boğazıma kadar almayı deneyebilirim',
    'Ağzımda hissetmek istiyorum sakso çekerken gözlerine bakayım',
    'Sakso çekmeyi çok severim yutana kadar ağzımda tutarım {isim}',
    'Dilimle ucunu yalarken sen saçlarımı tutar mısın',
    'Ağzıma alıp yavaş yavaş emmeye bayılıyorum sakso çekerken',
    'Slm vitrinde çıktın karşıma ilk defa görüyorum seni',
    'Merhaba en üst sıralardaydın sanırım tıkladım profile',
    '{isim} vitrinde gördüm merak ettim',
    'Selam yakın çevredeydin galiba ondan çıktın karşıma',
    'Slm aynı şehirde olduğumuz için mi çıkıyorsun karşıma',
    'Merhaba vitrine her baktığımda sen varsın neden acaba',
    'Selam {isim} yakınlarda mısın yoksa uygulama mı öyle gösteriyor',
    'Slm {sehirdemi} yaşıyorsun vitrin öyle gösteriyor',
    'Merhaba aynı semtte miyiz sen de vitrin sürekli seni gösteriyor',
    'Selam vitrin listesinde üst sıralardaydın konuşalım mı',
    '{isim} yakınımda olduğun için mi önde çıkıyorsun',
    'Slm en yakındakiler kısmında senin profili görüyorum sürekli',
    '{onayla} Evlilik için mi buraya kaydoldunuz eğer öyleyse bana whatsaptan yazar mısın numaram 0*** *** ** **',
    '{onayla} Jetonum bitiyor 0*** *** ** ** numaram ara beni devam edelim',
    '{onayla} Burası paralıymış ya benim jeton bitti 0*** *** ** ** numaram watsapa geçelim',
    '{onayla} Slm buluşup sikişmek istiyorsan 0*** *** ** ** mesaj at',
    '{onayla} Jetonlarım tükendi devam etmek istiyorsan 0*** *** ** ** ara beni',
    '{onayla} Burda konuşmak paralı diyorlar numaram 0*** *** ** ** yaz bana',
    '{onayla} {isim} jeton bitince mesaj atamıyorum 0*** *** ** ** vatsaptan yazabilirsin',
    '{onayla} Buluşup sevişelim mi yakınsan 0*** *** ** ** ara',
    '{onayla} Burası jeton istiyor ya bende kalmadı 0*** *** ** ** ekle beni',
    '{onayla} Seks için buluşmak istiyorsan 0*** *** ** ** mesaj atabilirsin',
    '{onayla} Merhaba jetonum az kaldı 0*** *** ** ** bu benim numara devam edelim istersen',
    '{onayla} Slm {isim} jeton alasım yok 0*** *** ** ** ara beni',
    'https://hupto.cntapi.com/assets/upimg/f908c402c7186d4832526970a3bcd9c8.jpg şeftali severmisinnnn',
    'https://hupto.cntapi.com/assets/upimg/a8632ce19a40fe0b29f9104d65c84eb6.jpg istermisin devamını',
    'https://hupto.cntapi.com/assets/upimg/eb0401d5859c25dba309d2f58bcaf90c.jpg gelsene yanıma uzanalım',
    'https://hupto.cntapi.com/assets/upimg/3e44222c90a3a15ee67adf07b10608ae.jpg nasılım senceee',
    'https://hupto.cntapi.com/assets/upimg/ba3acbc285aec233e8ccfbc421c95a2e.jpg gelip beni parçalasana yanıyorummmm'
];

$onesignalArr = [];
$sentMessagesCount = 0;

// Son 12 saat içinde aktif olan kullanıcıları bul
$sonaktif = time() - 12 * 60 * 60; // 12 saat

// Kayıt süresinin üzerinden 24 saat geçmiş kullanıcıları bul
$kayitzamani = time() - 24 * 60 * 60; // 24 saat

// Rastgele bir bot seç
$botQuery = $db->query("SELECT user_id, user_fullname, user_picture, user_onesignal, user_sehir, user_yas FROM kullanicilar WHERE user_bot = 1 ORDER BY RAND() LIMIT 1");
$bot = $botQuery->fetch(PDO::FETCH_ASSOC);

if (!$bot) {
    die("Bot bulunamadı!");
}

$bot_id = $bot['user_id'];
$bot_isim = $bot['user_fullname'];
$bot_resim = "https://app.heysen.net/" . $bot['user_picture'];
$bot_sehir = $bot['user_sehir'];
$bot_yas = $bot['user_yas'];

// Bot isminden sadece ilk ismi al (soyad olmadan)
$bot_isim_parts = explode(" ", $bot_isim);
$bot_ilk_isim = mb_convert_case(mb_strtolower($bot_isim_parts[0], 'UTF-8'), MB_CASE_TITLE, 'UTF-8');

// Kontrol paneli durumunu göster
echo "<div style='background: #f0f0f0; padding: 15px; border: 2px solid #333; margin-bottom: 20px;'>";
echo "<h3>🎛️ Sistem Durumu</h3>";
echo "<p><strong>Test Modu:</strong> " . ($TEST_MODE ? "✅ AÇIK (User ID: {$TEST_USER_ID})" : "❌ KAPALI (Tüm aktif kullanıcılar)") . "</p>";
echo "<p><strong>Bildirim:</strong> " . ($SEND_NOTIFICATION ? "✅ AÇIK" : "❌ KAPALI") . "</p>";
echo "<p><strong>Rastgele Çalışma:</strong> " . ($RANDOM_RUN ? "✅ AÇIK (%50 şans)" : "❌ KAPALI (Her zaman çalışır)") . "</p>";
echo "<p><strong>Hedef Kullanıcı:</strong> Kayıt ≥ 24 saat + Son aktiflik ≤ 12 saat</p>";
echo "<p><strong>🆕 İlk Mesajlar:</strong> Yeni kullanıcılara (kayıt < 24 saat) toplam 3 mesaj gönderilir, sonra 24 saat beklenir</p>";
echo "</div>";

echo "<h3>🤖 Bot Bilgileri</h3>";
echo "Bot ID: {$bot_id}<br>";
echo "Bot İsim: {$bot_isim}<br>";
echo "<hr>";

// Kullanıcı sorgusunu test moduna göre ayarla
if ($TEST_MODE) {
    // TEST MODU: Sadece belirli bir kullanıcıya gönder
    $userQuery = $db->prepare("
        SELECT k.user_id, k.user_onesignal, k.user_fullname, k.user_yas, k.user_sehir
        FROM kullanicilar k
        WHERE k.user_id = ?
    ");
    $userQuery->execute([$TEST_USER_ID]);
} else {
    // CANLI MOD: İki grup kullanıcı var
    
    // GRUP 1: Kayıt üzerinden 24 saat geçmiş VE son 12 saat içinde aktif olan kullanıcılar
    $userQuery = $db->prepare("
        SELECT k.user_id, k.user_onesignal, k.user_fullname, k.user_yas, k.user_sehir
        FROM kullanicilar k
        WHERE k.user_songiris >= ?
        AND k.user_kayit <= ?
        AND k.user_bot = 0
        AND k.user_cinsiyet = 'erkek'
        AND k.user_id != 663793
    ");
    $userQuery->execute([$sonaktif, $kayitzamani]);
    $normalUsers = $userQuery->fetchAll(PDO::FETCH_ASSOC);
    
    // GRUP 2: Yeni kayıt olan (24 saatten az) ve 3'ten az mesaj almış kullanıcılar
    // Bu kullanıcılara toplam 3 mesaj gidecek
    $yeniKayitQuery = $db->prepare("
        SELECT k.user_id, k.user_onesignal, k.user_fullname, k.user_yas, k.user_sehir
        FROM kullanicilar k
        WHERE k.user_songiris >= ?
        AND k.user_kayit > ?
        AND k.user_bot = 0
        AND k.user_cinsiyet = 'erkek'
        AND k.user_id != 663793
        AND (
            SELECT COUNT(*) FROM mesajlar m 
            WHERE m.alan_id = k.user_id 
            AND m.ip = '::0'
        ) < 3
    ");
    $yeniKayitQuery->execute([$sonaktif, $kayitzamani]);
    $yeniUsers = $yeniKayitQuery->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<p><strong>📊 Yeni Kullanıcı (3'ten az mesaj almış):</strong> " . count($yeniUsers) . " kişi</p>";
    echo "<p><strong>📊 Normal Kullanıcı (24+ saat):</strong> " . count($normalUsers) . " kişi</p>";
}
$users = $TEST_MODE ? $userQuery->fetchAll(PDO::FETCH_ASSOC) : array_merge($yeniUsers, $normalUsers);

if (empty($users)) {
    echo "Mesaj gönderilecek uygun kullanıcı bulunamadı.<br>";
    echo "Kriterlere uyan kullanıcı yok:<br>";
    echo "- Kayıt üzerinden 24 saat geçmiş olmalı<br>";
    echo "- Son 12 saat içinde aktif olmalı<br>";
    echo "- Bu bot daha önce mesaj göndermemiş olmalı<br>";
    exit;
}

// OPTIMIZE: Tüm kullanıcıların ID'lerini topla
$userIds = array_column($users, 'user_id');

// OPTIMIZE: Tüm kullanıcıların bilgilerini tek sorguda çek (SQL Injection koruması)
$userIdsStr = implode(',', array_map('intval', $userIds));
$allUsersQuery = $db->query("SELECT user_id, user_fullname, user_yas, user_sehir FROM kullanicilar WHERE user_id IN ($userIdsStr)");
$allUsersData = $allUsersQuery->fetchAll(PDO::FETCH_ASSOC);

// Kullanıcı verilerini hızlı erişim için diziye dönüştür
$usersDataMap = [];
foreach ($allUsersData as $userData) {
    $usersDataMap[$userData['user_id']] = $userData;
}

// OPTIMIZE 1: Bu botun daha önce mesaj gönderdiği kullanıcıları tek sorguda çek
$alreadyMessagedQuery = $db->query("
    SELECT DISTINCT alan_id
    FROM mesajlar 
    WHERE alan_id IN ($userIdsStr) 
    AND gonderen_id = $bot_id
");
$alreadyMessaged = $alreadyMessagedQuery->fetchAll(PDO::FETCH_ASSOC);

// Bu botun daha önce mesaj attığı kullanıcıları map'e at
$alreadyMessagedMap = [];
foreach ($alreadyMessaged as $msg) {
    $alreadyMessagedMap[$msg['alan_id']] = true;
}

// OPTIMIZE 2: Tüm kullanıcıların daha önce aldığı template'leri tek sorguda çek (HERHANGİ BİR BOTTAN)
$allTemplatesQuery = $db->query("
    SELECT alan_id, author 
    FROM mesajlar 
    WHERE alan_id IN ($userIdsStr) 
    AND author LIKE 'template_%'
");
$allTemplates = $allTemplatesQuery->fetchAll(PDO::FETCH_ASSOC);

// Template'leri kullanıcı bazında grupla
$userTemplatesMap = [];
foreach ($allTemplates as $template) {
    $userId = $template['alan_id'];
    if (!isset($userTemplatesMap[$userId])) {
        $userTemplatesMap[$userId] = [];
    }
    if (preg_match('/template_(\d+)/', $template['author'], $matches)) {
        $userTemplatesMap[$userId][] = (int)$matches[1];
    }
}

// Batch insert için verileri topla
$insertData = [];
$currentTime = time();

foreach ($users as $user) {
    $userId = $user['user_id'];
    
    // Özel kullanıcı kontrolü (663793)
    if ($userId == 663793) {
        echo "⚠️ User ID {$userId} özel kullanıcı, mesaj gönderilmeyecek.<br>";
        continue;
    }
    
    // Bu bot daha önce bu kullanıcıya mesaj atmış mı kontrol et
    if (isset($alreadyMessagedMap[$userId])) {
        echo "⚠️ User ID {$userId} için bu bot daha önce mesaj göndermiş, atlanıyor.<br>";
        continue;
    }
    
    // Kullanıcı bilgilerini map'ten al
    if (!isset($usersDataMap[$userId])) {
        continue;
    }
    $userDetail = $usersDataMap[$userId];
    
    // Kullanıcının sadece ilk ismini al
    $isimver = explode(" ", $userDetail['user_fullname']);
    $isim = mb_convert_case(mb_strtolower($isimver[0], 'UTF-8'), MB_CASE_TITLE, 'UTF-8');
    
    $yas = $userDetail['user_yas'];
    $sehir = $userDetail['user_sehir'];
    
    // TUTARLILIK: Tüm değişkenler ya küçük ya büyük harf olsun (random seç)
    $tumKucukHarf = rand(0, 1);
    if ($tumKucukHarf == 1) {
        $isim = mb_strtolower($isim, 'UTF-8');
        $bot_isim_mesaj = mb_strtolower($bot_ilk_isim, 'UTF-8');
    } else {
        $bot_isim_mesaj = $bot_ilk_isim;
    }
    
    // Kullanıcının daha önce aldığı template'leri al (herhangi bir bottan)
    $usedTemplateIds = isset($userTemplatesMap[$userId]) ? $userTemplatesMap[$userId] : [];
    
    // Henüz gönderilmemiş mesajları filtrele
    $availableMessages = [];
    foreach ($mesajlar as $index => $mesaj) {
        if (!in_array($index, $usedTemplateIds)) {
            $availableMessages[$index] = $mesaj;
        }
    }
    
    // Eğer gönderilecek mesaj kalmadıysa bu kullanıcıyı atla
    if (empty($availableMessages)) {
        echo "⚠️ User ID {$userId} için tüm mesajlar daha önce gönderilmiş, atlanıyor.<br>";
        continue;
    }
    
    // Kalan mesajlardan rastgele birini seç
    $selectedIndex = array_rand($availableMessages);
    $rastgeleMesaj = $availableMessages[$selectedIndex];
    
    // Mesaj içindeki değişkenleri değiştir (şehir fonksiyonları dahil)
    $degiskenler = ["{isim}", "{bot_isim}", "{yas}", "{bot_yas}", "{sehirlimisin}", "{sehirdemi}", "{sehirliyim}", "{sehrinneresinden}"];
    $degisenler = [$isim, $bot_isim_mesaj, $yas, $bot_yas, sehirli($sehir), sehirde($sehir), sehirliyim($sehir), sehrinneresinden($sehir)];
    $yeniMesaj = str_replace($degiskenler, $degisenler, $rastgeleMesaj);
    
    // Cümlenin ilk harfini büyük yap (URL ile başlamıyorsa)
    if (!preg_match('/^https?:\/\//i', $yeniMesaj)) {
        $yeniMesaj = ucfirst($yeniMesaj);
    }
    
    $insertData[] = [
        'bot_id' => $bot_id,
        'user_id' => $user['user_id'],
        'mesaj' => $yeniMesaj,
        'template_id' => $selectedIndex,
        'zaman' => $currentTime
    ];
    
    // Bildirim gönderimi açıksa OneSignal ID'lerini topla
    if ($SEND_NOTIFICATION && !empty($user['user_onesignal']) && preg_match('/^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$/i', $user['user_onesignal'])) {
        $onesignalArr[] = $user['user_onesignal'];
    }
}

// Tüm mesajları tek seferde ekle (batch insert)
if (!empty($insertData)) {
    $placeholders = [];
    $values = [];
    
    foreach ($insertData as $data) {
        $placeholders[] = "(?, ?, ?, ?, ?, ?, ?)";
        $values[] = $data['bot_id'];                           // gonderen_id
        $values[] = $data['user_id'];                          // alan_id
        $values[] = $data['mesaj'];                            // icerik
        $values[] = "::0";                                     // ip
        $values[] = "template_" . $data['template_id'];        // author (template ID'yi buraya saklıyoruz)
        $values[] = $data['zaman'];                            // zaman
        $values[] = 0;                                         // okundu
    }
    
    $sql = "INSERT INTO mesajlar (gonderen_id, alan_id, icerik, ip, author, zaman, okundu) VALUES " . implode(', ', $placeholders);
    $stmt = $db->prepare($sql);
    
    if ($stmt->execute($values)) {
        $sentMessagesCount = count($insertData);
        echo "✅ {$sentMessagesCount} mesaj başarıyla gönderildi!<br><br>";
    } else {
        echo "❌ Mesaj gönderme hatası!<br>";
    }
}

// OneSignal bildirimi gönder
if ($SEND_NOTIFICATION && !empty($onesignalArr)) {
    $bildirim_icerik = "💬 {$bot_isim} size mesaj gönderdi.";

    $heading = array(
        "en" => "💬 Yeni Mesajınız Var!"
    );

    $content = array(
        "en" => $bildirim_icerik
    );

    $fields = array(
        'app_id' => "ad1b405f-217b-47b5-b59b-770d801cb89b",
        'include_player_ids' => $onesignalArr,
        'data' => array("foo" => "bar"),
        'contents' => $content,
        'ttl' => 2700,
        'headings' => $heading,
        'priority' => 10,
        'large_icon' => $bot_resim,
        'url' => 'https://' . $_SERVER['SERVER_NAME'] . '/mesajlar.php?id=' . $bot_id
    );

    $fields = json_encode($fields);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    $response = curl_exec($ch);
    curl_close($ch);

    echo "<h4>📱 OneSignal Yanıtı:</h4>";
    echo "<pre>" . $response . "</pre>";
    echo "<br><br>";
} else {
    if (!$SEND_NOTIFICATION) {
        echo "⚠️ Bildirim gönderimi kapalı (KONTROL PANELİ).<br><br>";
    } else if (empty($onesignalArr)) {
        echo "⚠️ Bildirim gönderilecek geçerli OneSignal ID'si bulunamadı.<br><br>";
    }
}

// Performans raporu
$endTime = microtime(true);
$executionTime = round($endTime - $startTime, 3);
$totalMessages = count($insertData ?? []);
$totalNotifications = count($onesignalArr ?? []);

echo "<hr>";
echo "<h3>💬 " . ($TEST_MODE ? "TEST MODU" : "CANLI MOD") . " - Mesaj Gönderme Sistemi - Performans Raporu</h3>";
echo "<table border='1' cellpadding='10' style='border-collapse: collapse;'>";
echo "<tr><td><strong>⏱️ Çalışma Süresi</strong></td><td><strong style='color: green;'>{$executionTime} saniye</strong></td></tr>";
echo "<tr><td><strong>💬 Gönderilen Mesaj</strong></td><td>{$totalMessages}</td></tr>";
echo "<tr><td><strong>🔔 Gönderilen Bildirim</strong></td><td>{$totalNotifications}</td></tr>";
echo "<tr><td><strong>🤖 Bot ID</strong></td><td>{$bot_id}</td></tr>";
echo "<tr><td><strong>🤖 Bot İsim</strong></td><td>{$bot_isim}</td></tr>";
if ($TEST_MODE) {
    echo "<tr><td><strong>👤 Test Kullanıcı ID</strong></td><td>{$TEST_USER_ID}</td></tr>";
} else {
    echo "<tr><td><strong>👥 Hedef Kullanıcı Sayısı</strong></td><td>" . count($users) . "</td></tr>";
}
if($totalMessages > 0) {
    $perMessage = round($executionTime / $totalMessages, 4);
    echo "<tr><td><strong>⚡ Mesaj Başına</strong></td><td>{$perMessage} saniye</td></tr>";
}
echo "</table>";
echo "<br>";

// Gönderilen mesajların detayını göster
if (!empty($insertData)) {
    echo "<hr>";
    echo "<h3>📋 Gönderilen Mesaj Detayları</h3>";
    echo "<table border='1' cellpadding='8' style='border-collapse: collapse;'>";
    echo "<tr><th>Sıra</th><th>Bot ID</th><th>Kullanıcı ID</th><th>Mesaj</th><th>Zaman</th></tr>";
    $sira = 1;
    foreach ($insertData as $data) {
        echo "<tr>";
        echo "<td>{$sira}</td>";
        echo "<td>{$data['bot_id']}</td>";
        echo "<td>{$data['user_id']}</td>";
        echo "<td>{$data['mesaj']}</td>";
        echo "<td>" . date('Y-m-d H:i:s', $data['zaman']) . "</td>";
        echo "</tr>";
        $sira++;
    }
    echo "</table>";
}

echo "<br><br>";
if ($TEST_MODE) {
    echo "<div style='background: #ffcccc; padding: 15px; border: 2px solid red;'>";
    echo "<h3 style='color: red;'>⚠️ TEST MODU AKTİF ⚠️</h3>";
    echo "<p>Bu dosya şu anda sadece user_id <strong>{$TEST_USER_ID}</strong> için çalışmaktadır.</p>";
    echo "<p>Canlıya almak için dosyanın başındaki <strong>\$TEST_MODE = false</strong> yapın!</p>";
    echo "</div>";
} else {
    echo "<div style='background: #ccffcc; padding: 15px; border: 2px solid green;'>";
    echo "<h3 style='color: green;'>✅ CANLI MOD AKTİF ✅</h3>";
    echo "<p>Sistem tüm aktif kullanıcılara mesaj gönderiyor.</p>";
    echo "</div>";
}
?>

