<?php
/**
 * Admin Destek Cevaplama (Çoklu Mesaj Sistemi)
 * Konum: /magaza/admin/destek/cevapla.php
 */

require_once '../../includes/db.php';
require_once '../../includes/functions.php';

adminCheck();

$mesaj = '';

if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    header("Location: index.php");
    exit;
}
$talep_id = (int)$_GET['id'];

// FLASH MESAJ KONTROLÜ (Sayfa yenilemesinde mesajın kaybolmaması için)
if (isset($_SESSION['flash_mesaj'])) {
    $mesaj = $_SESSION['flash_mesaj'];
    unset($_SESSION['flash_mesaj']); // Gösterdikten sonra sil
}

// Öncelikle Talebi ve Müşteri Bilgisini Çek (Bildirim atmak için user_id lazım)
$stmt = $db->prepare("SELECT s.*, u.name, u.surname, u.email FROM support_tickets s JOIN users u ON s.user_id = u.id WHERE s.id = ?");
$stmt->execute([$talep_id]);
$talep = $stmt->fetch();

if (!$talep) {
    die("<div class='alert alert-danger m-4'>Talep bulunamadı!</div>");
}

$musteri_id = $talep['user_id'];
$talep_konusu = $talep['subject'];

// --- CEVAP GÖNDERME VEYA DURUM GÜNCELLEME ---
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['cevap_gonder'])) {
    $cevap = trim($_POST['reply_message']);
    $yeni_durum = $_POST['status'];

    try {
        $db->beginTransaction();
        
        $bildirim_atilsin_mi = false;
        $bildirim_baslik = "";
        $bildirim_icerik = "";

        // Eğer bir cevap yazılmışsa messages tablosuna admin ID'si ile kaydet
        if (!empty($cevap)) {
            $msg_ins = $db->prepare("INSERT INTO ticket_messages (ticket_id, sender_id, message) VALUES (?, ?, ?)");
            $msg_ins->execute([$talep_id, $_SESSION['admin_id'], $cevap]);
            
            $bildirim_atilsin_mi = true;
            $bildirim_baslik = "Destek Talebinize Yanıt Geldi";
            $bildirim_icerik = "#{$talep_id} numaralı destek talebiniz müşteri temsilcimiz tarafından yanıtlandı.";
        }
        
        // Bilet durumunu güncelle
        $stmt = $db->prepare("UPDATE support_tickets SET status = ?, updated_at = NOW() WHERE id = ?");
        $stmt->execute([$yeni_durum, $talep_id]);
        
        // Sadece durum kapandıya (closed) çekildiyse ama mesaj atılmadıysa bildirim at
        if(empty($cevap) && $talep['status'] != 'closed' && $yeni_durum == 'closed') {
             $bildirim_atilsin_mi = true;
             $bildirim_baslik = "Destek Talebiniz Kapatıldı";
             $bildirim_icerik = "#{$talep_id} numaralı destek talebiniz çözümlenerek kapatılmıştır.";
        }

        $db->commit();
        
        // BİLDİRİM TETİKLEYİCİSİ
        if($bildirim_atilsin_mi) {
            $icon = ($yeni_durum == 'closed') ? 'bi-check2-circle text-success' : 'bi-headset text-info';
            siteBildirimGonder($musteri_id, $bildirim_baslik, $bildirim_icerik, "destek-detay.php?id={$talep_id}", $icon);
        }

        // Başarı mesajını Session'a kaydet ve sayfayı yeniden yönlendir (F5 Sorununu Çözer)
        $_SESSION['flash_mesaj'] = "<div class='alert alert-success shadow-sm'><i class='bi bi-check-circle-fill me-2'></i> İşlem başarıyla kaydedildi.</div>";
        header("Location: cevapla.php?id=" . $talep_id);
        exit;
        
    } catch (Exception $e) {
        $db->rollBack();
        $mesaj = "<div class='alert alert-danger shadow-sm'>Hata: " . $e->getMessage() . "</div>";
    }
}

// BİLETE AİT TÜM MESAJLARI ÇEK
$msg_stmt = $db->prepare("
    SELECT m.*, u.role, u.name, u.surname 
    FROM ticket_messages m 
    JOIN users u ON m.sender_id = u.id 
    WHERE m.ticket_id = ? 
    ORDER BY m.created_at ASC
");
$msg_stmt->execute([$talep_id]);
$mesajlar = $msg_stmt->fetchAll();

require_once '../header.php';
?>

<div class="row mb-4 align-items-center text-dark">
    <div class="col-md-6">
        <h2 class="fw-bold mb-0">
            <a href="index.php" class="btn btn-sm btn-outline-secondary me-3"><i class="bi bi-arrow-left"></i> Geri</a>
            Talep Detayı: <span class="text-primary">#<?= $talep['id'] ?></span>
        </h2>
    </div>
</div>

<?= $mesaj; ?>

<div class="row text-dark">
    <div class="col-lg-7">
        <div class="card shadow-sm border-0 mb-4 h-100 d-flex flex-column">
            <div class="card-header bg-white py-3 border-bottom">
                <div class="mb-1 fw-bold small text-muted text-uppercase">Talebin Konusu</div>
                <h5 class="mb-0 fw-bold text-dark"><?= htmlspecialchars($talep['subject']) ?></h5>
            </div>
            
            <div class="card-body p-4 bg-light flex-grow-1 overflow-auto" id="chatContainer" style="max-height: 500px;">
                <?php if(count($mesajlar) > 0): ?>
                    <?php foreach($mesajlar as $msg): ?>
                        <?php if($msg['role'] == 'customer'): // Müşterinin Mesajı ?>
                            <div class="d-flex flex-column align-items-start mb-4">
                                <span class="small fw-bold text-dark mb-1 ms-1"><i class="bi bi-person-circle text-primary"></i> <?= htmlspecialchars($msg['name'] . ' ' . $msg['surname']) ?></span>
                                <div class="bg-white border text-dark rounded-4 rounded-bottom-0 rounded-end px-3 py-2 shadow-sm" style="max-width: 85%;">
                                    <?= nl2br(htmlspecialchars($msg['message'])) ?>
                                </div>
                                <small class="text-muted mt-1 ms-1" style="font-size: 11px;"><?= date('d.m.Y H:i', strtotime($msg['created_at'])) ?></small>
                            </div>
                        <?php else: // Adminin Cevabı ?>
                            <div class="d-flex flex-column align-items-end mb-4">
                                <span class="small fw-bold text-muted mb-1 me-1">Siz (Müşteri Temsilcisi) <i class="bi bi-headset text-success"></i></span>
                                <div class="bg-success bg-opacity-10 border border-success border-opacity-25 text-dark rounded-4 rounded-bottom-0 rounded-start px-3 py-2 shadow-sm" style="max-width: 85%;">
                                    <?= nl2br(htmlspecialchars($msg['message'])) ?>
                                </div>
                                <small class="text-muted mt-1 me-1" style="font-size: 11px;"><?= date('d.m.Y H:i', strtotime($msg['created_at'])) ?></small>
                            </div>
                        <?php endif; ?>
                    <?php endforeach; ?>
                <?php else: ?>
                    <div class="text-center text-muted italic my-5">Bu talebe ait mesaj bulunamadı.</div>
                <?php endif; ?>
            </div>
        </div>
    </div>

    <div class="col-lg-5">
        <div class="card shadow-sm border-0 border-top border-4 border-primary h-100">
            <div class="card-header bg-white py-3 border-bottom">
                <h5 class="mb-0 fw-bold text-primary small text-uppercase"><i class="bi bi-chat-right-quote me-2"></i>Yanıtla & Yönet</h5>
            </div>
            <div class="card-body p-4 bg-white">
                <form action="cevapla.php?id=<?= $talep_id ?>" method="POST">
                    <div class="mb-4">
                        <label class="form-label fw-bold small text-muted text-uppercase">Durumu Güncelle</label>
                        <select name="status" class="form-select border-2">
                            <option value="open" <?= $talep['status'] == 'open' ? 'selected' : '' ?>>Açık (Müdahale Gerekli)</option>
                            <option value="in_progress" <?= $talep['status'] == 'in_progress' ? 'selected' : '' ?>>İşlem Yapılıyor</option>
                            <option value="answered" <?= $talep['status'] == 'answered' ? 'selected' : '' ?>>Cevaplandı (Kullanıcı Bekleniyor)</option>
                            <option value="closed" <?= $talep['status'] == 'closed' ? 'selected' : '' ?>>Talebi Kapat</option>
                        </select>
                    </div>

                    <div class="mb-4">
                        <label class="form-label fw-bold small text-muted text-uppercase">Cevabınız</label>
                        <textarea name="reply_message" class="form-control border-2" rows="6" placeholder="Müşteriye iletilecek mesajınızı buraya yazın... (Sadece durum güncelleyecekseniz boş bırakabilirsiniz)"></textarea>
                    </div>

                    <button type="submit" name="cevap_gonder" class="btn btn-primary w-100 fw-bold py-3 shadow">
                        GÖNDER VE KAYDET
                    </button>
                </form>
            </div>
        </div>
    </div>
</div>

<script>
    // Mesajlar kutusunu en alta kaydır
    var chatContainer = document.getElementById("chatContainer");
    if(chatContainer) {
        chatContainer.scrollTop = chatContainer.scrollHeight;
    }
</script>

<?php require_once '../footer.php'; ?>