<?php
session_start();

// Session kontrolü - sadece giriş yapmış kullanıcılar erişebilir
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
    // Giriş yapılmamışsa login.php'ye yönlendir
    header('Location: login.php');
    exit;
}

// Siparişleri yönetmek için admin paneli

// AJAX istekleri için
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    header('Content-Type: application/json');
    
    $action = $_POST['action'] ?? '';
    
    if ($action === 'delete') {
        $filename = $_POST['filename'] ?? '';
        $filepath = '../../../records/' . basename($filename);
        
        if (file_exists($filepath)) {
            unlink($filepath);
            echo json_encode(['success' => true, 'message' => 'Sipariş başarıyla silindi']);
        } else {
            echo json_encode(['success' => false, 'message' => 'Dosya bulunamadı']);
        }
        exit;
    }
    
    if ($action === 'get_order_details') {
        $filename = $_POST['filename'] ?? '';
        $filepath = '../../../records/' . basename($filename);
        
        if (file_exists($filepath)) {
            $content = file_get_contents($filepath);
            $order = json_decode($content, true);
            echo json_encode(['success' => true, 'order' => $order]);
        } else {
            echo json_encode(['success' => false, 'message' => 'Dosya bulunamadı']);
        }
        exit;
    }
}

// Siparişleri okuma fonksiyonu
function getOrders() {
    $orders = [];
    $recordsDir = '../../../records/';
    
    if (is_dir($recordsDir)) {
        $files = glob($recordsDir . '*.json');
        
        foreach ($files as $file) {
            $content = file_get_contents($file);
            $order = json_decode($content, true);
            
            if ($order) {
                $order['filename'] = basename($file);
                $order['file_size'] = filesize($file);
                $order['file_modified'] = filemtime($file);
                
                // Bu müşterinin toplam sipariş sayısını hesapla
                $order['total_orders'] = getCustomerOrderCount($order['owner'], $recordsDir);
                
                $orders[] = $order;
            }
        }
    }
    
    // Tarihe göre sırala (en yeni önce)
    usort($orders, function($a, $b) {
        return strtotime($b['saved_at']) - strtotime($a['saved_at']);
    });
    
    return $orders;
}

// Müşterinin toplam sipariş sayısını hesapla
function getCustomerOrderCount($customerName, $recordsDir) {
    $count = 0;
    $files = glob($recordsDir . '*.json');
    
    foreach ($files as $file) {
        $content = file_get_contents($file);
        $order = json_decode($content, true);
        
        if ($order && isset($order['owner'])) {
            // Benzer müşteri isimlerini yakala (case-insensitive ve fazladan boşlukları ignore et)
            $cleanCustomerName = strtolower(trim(preg_replace('/\s+/', ' ', $customerName)));
            $cleanOrderOwner = strtolower(trim(preg_replace('/\s+/', ' ', $order['owner'])));
            
            if ($cleanCustomerName === $cleanOrderOwner) {
                $count++;
            }
        }
    }
    
    return $count;
}

$orders = getOrders();
?>

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Sipariş Yönetim Paneli">
    <meta name="keywords" content="admin,sipariş,yönetim">
    <meta name="author" content="Admin Panel">
    
    <title>Sipariş Yönetimi - Admin Panel</title>

    <!-- Styles -->
    <link href="https://fonts.googleapis.com/css?family=Poppins:400,500,700,800&display=swap" rel="stylesheet">
    <link href="../../assets/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <link href="../../assets/plugins/font-awesome/css/all.min.css" rel="stylesheet">
    <link href="../../assets/plugins/perfectscroll/perfect-scrollbar.css" rel="stylesheet">
    
    <!-- Theme Styles -->
    <link href="../../assets/css/main.min.css" rel="stylesheet">
    <link href="../../assets/css/custom.css" rel="stylesheet">
    
    <!-- PDF yazdırma için -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
</head>
<body>
    <div class='loader'>
        <div class='spinner-grow text-primary' role='status'>
            <span class='sr-only'>Yükleniyor...</span>
        </div>
    </div>

    <div class="page-container">
        <div class="page-header">
            <nav class="navbar navbar-expand-lg d-flex justify-content-between">
                <div class="" id="navbarNav">
                    <ul class="navbar-nav" id="leftNav">
                        <li class="nav-item">
                            <a class="nav-link" id="sidebar-toggle" href="#"><i data-feather="arrow-left"></i></a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="index.html">Ana Sayfa</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">Ayarlar</a>
                        </li>
                        <li class="nav-item">
                            <a class="nav-link" href="#">Yardım</a>
                        </li>
                    </ul>
                </div>
                <div class="logo">
                    <a class="navbar-brand" href="index.html">Admin Panel</a>
                    <small class="text-white d-block" style="font-size: 12px; opacity: 0.8;">
                        Hoş geldin, <?php echo htmlspecialchars($_SESSION['admin_username'] ?? 'Admin'); ?>
                    </small>
                </div>
                <div class="" id="headerNav">
                    <ul class="navbar-nav">
                        <li class="nav-item dropdown">
                            <a class="nav-link search-dropdown" href="#" id="searchDropDown" role="button" data-bs-toggle="dropdown" aria-expanded="false"><i data-feather="search"></i></a>
                            <div class="dropdown-menu dropdown-menu-end dropdown-lg search-drop-menu" aria-labelledby="searchDropDown">
                                <form>
                                    <input class="form-control" type="text" placeholder="Ara..." aria-label="Search">
                                </form>
                            </div>
                        </li>
                        <li class="nav-item dropdown">
                            <a class="nav-link notifications-dropdown" href="#" id="notificationsDropDown" role="button" data-bs-toggle="dropdown" aria-expanded="false">3</a>
                            <div class="dropdown-menu dropdown-menu-end notif-drop-menu" aria-labelledby="notificationsDropDown">
                                <h6 class="dropdown-header">Bildirimler</h6>
                                <a href="#">
                                    <div class="header-notif">
                                        <div class="notif-image">
                                            <span class="notification-badge bg-info text-white">
                                                <i class="fas fa-shopping-cart"></i>
                                            </span>
                                        </div>
                                        <div class="notif-text">
                                            <p class="bold-notif-text">Yeni sipariş geldi</p>
                                            <small>19:00</small>
                                        </div>
                                    </div>
                                </a>
                            </div>
                        </li>
                        <li class="nav-item dropdown">
                            <a class="nav-link profile-dropdown" href="#" id="profileDropDown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                                <img src="../../assets/images/avatars/profile-image-1.png" alt="">
                            </a>
                            <div class="dropdown-menu dropdown-menu-end profile-drop-menu" aria-labelledby="profileDropDown">
                                <a class="dropdown-item" href="#"><i data-feather="user"></i>Profil</a>
                                <a class="dropdown-item" href="#"><i data-feather="settings"></i>Ayarlar</a>
                                <a class="dropdown-item" href="logout.php"><i data-feather="log-out"></i>Çıkış</a>
                            </div>
                        </li>
                    </ul>
                </div>
            </nav>
        </div>

        <div class="page-sidebar">
            <ul class="list-unstyled accordion-menu">
                <li class="sidebar-title">Ana Menü</li>
                <li><a href="index.html"><i data-feather="home"></i>Dashboard</a></li>
                <li class="active-page">
                    <a href="#" class="active"><i data-feather="shopping-cart"></i>Siparişler</a>
                </li>
                <li><a href="tables.html"><i data-feather="list"></i>Tablolar</a></li>
                <li><a href="#"><i data-feather="settings"></i>Ayarlar</a></li>
            </ul>
        </div>

        <div class="page-content">
            <div class="main-wrapper">
                <!-- Sipariş İstatistikleri -->
                <div class="row">
                    <div class="col-md-3">
                        <div class="card">
                            <div class="card-body text-center">
                                <h3 class="text-primary"><?php echo count($orders); ?></h3>
                                <p class="mb-0">Toplam Sipariş</p>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="card">
                            <div class="card-body text-center">
                                <h3 class="text-info"><?php echo count(array_filter($orders, function($o) { return date('Y-m-d', strtotime($o['saved_at'])) === date('Y-m-d'); })); ?></h3>
                                <p class="mb-0">Bugünkü Siparişler</p>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="card">
                            <div class="card-body text-center">
                                <h3 class="text-success"><?php echo count(array_unique(array_column($orders, 'owner'))); ?></h3>
                                <p class="mb-0">Farklı Müşteri</p>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="card">
                            <div class="card-body text-center">
                                <h3 class="text-warning"><?php echo array_sum(array_column($orders, 'message_count')); ?></h3>
                                <p class="mb-0">Toplam Mesaj</p>
                            </div>
                        </div>
                    </div>
                </div>

                <!-- Sipariş Listesi -->
                <div class="row">
                    <div class="col">
                        <div class="card">
                            <div class="card-body">
                                <div class="d-flex justify-content-between align-items-center mb-4">
                                    <h5 class="card-title mb-0">
                                        <i data-feather="shopping-cart"></i> Sipariş Listesi
                                    </h5>
                                    <button class="btn btn-success btn-sm" onclick="printAllOrders()">
                                        <i data-feather="printer"></i> Tümünü Yazdır
                                    </button>
                                </div>

                                <?php if (empty($orders)): ?>
                                    <div class="text-center py-5">
                                        <i data-feather="inbox" style="width: 48px; height: 48px;" class="text-muted mb-3"></i>
                                        <h5 class="text-muted">Henüz sipariş bulunmuyor</h5>
                                        <p class="text-muted">Yeni siparişler geldiğinde burada görünecektir.</p>
                                    </div>
                                <?php else: ?>
                                    <div class="table-responsive">
                                        <table class="table table-hover">
                                            <thead class="table-primary">
                                                <tr>
                                                    <th>#</th>
                                                    <th>Müşteri Adı</th>
                                                    <th>Sipariş Tarihi</th>
                                                    <th>Mesaj Sayısı</th>
                                                    <th>Dosya Boyutu</th>
                                                    <th>İşlemler</th>
                                                </tr>
                                            </thead>
                                            <tbody>
                                                <?php foreach ($orders as $index => $order): ?>
                                                    <tr data-order-file="<?php echo htmlspecialchars($order['filename']); ?>">
                                                        <td><?php echo $index + 1; ?></td>
                                                        <td>
                                                            <strong><?php echo htmlspecialchars($order['owner']); ?></strong>
                                                        </td>
                                                        <td>
                                                            <?php 
                                                            $date = new DateTime($order['saved_at']);
                                                            echo $date->format('d.m.Y H:i');
                                                            ?>
                                                            <br>
                                                            <small class="text-muted">
                                                                <?php 
                                                                $now = new DateTime();
                                                                $diff = $now->diff($date);
                                                                if ($diff->days == 0) {
                                                                    echo "Bugün";
                                                                } elseif ($diff->days == 1) {
                                                                    echo "Dün";
                                                                } else {
                                                                    echo $diff->days . " gün önce";
                                                                }
                                                                ?>
                                                            </small>
                                                        </td>
                                                        <td>
                                                            <span class="badge bg-info"><?php echo $order['message_count']; ?> mesaj</span>
                                                        </td>
                                                        <td>
                                                            <?php echo number_format($order['file_size'] / 1024, 1); ?> KB
                                                        </td>
                                                        <td>
                                                            <div class="btn-group" role="group">
                                                                <button class="btn btn-primary btn-sm" 
                                                                        onclick="viewOrderDetails('<?php echo htmlspecialchars($order['filename']); ?>')"
                                                                        title="Detayları Görüntüle">
                                                                    <i data-feather="eye"></i>
                                                                </button>
                                                                <button class="btn btn-success btn-sm" 
                                                                        onclick="printOrder('<?php echo htmlspecialchars($order['filename']); ?>')"
                                                                        title="PDF Olarak Yazdır">
                                                                    <i data-feather="printer"></i>
                                                                </button>
                                                                <button class="btn btn-danger btn-sm" 
                                                                        onclick="deleteOrder('<?php echo htmlspecialchars($order['filename']); ?>', '<?php echo htmlspecialchars($order['owner']); ?>')"
                                                                        title="Siparişi Sil">
                                                                    <i data-feather="trash-2"></i>
                                                                </button>
                                                            </div>
                                                        </td>
                                                    </tr>
                                                <?php endforeach; ?>
                                            </tbody>
                                        </table>
                                    </div>
                                <?php endif; ?>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <!-- Sipariş Detayları Modal -->
    <div class="modal fade" id="orderDetailsModal" tabindex="-1" aria-labelledby="orderDetailsModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-xl">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="orderDetailsModalLabel">
                        <i data-feather="info"></i> Sipariş Detayları
                    </h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body p-4" id="orderDetailsContent">
                    <div class="text-center py-5">
                        <div class="spinner-border text-primary" role="status">
                            <span class="sr-only">Yükleniyor...</span>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
                        <i data-feather="x"></i> Kapat
                    </button>
                    <button type="button" class="btn btn-success" id="printCurrentOrder">
                        <i data-feather="printer"></i> PDF Yazdır
                    </button>
                </div>
            </div>
        </div>
    </div>

    <!-- Hidden Print Area -->
    <div id="printArea" style="display: none; position: fixed; left: -9999px; top: -9999px; width: 800px; background: white; z-index: -1; box-sizing: border-box; overflow: hidden; font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;">
        <!-- Print content will be dynamically inserted here -->
    </div>

    <!-- Scripts -->
    <script src="../../assets/plugins/jquery/jquery-3.4.1.min.js"></script>
    <script src="https://unpkg.com/@popperjs/core@2"></script>
    <script src="../../assets/plugins/bootstrap/js/bootstrap.min.js"></script>
    <script src="https://unpkg.com/feather-icons"></script>
    <script src="../../assets/plugins/perfectscroll/perfect-scrollbar.min.js"></script>
    <script src="../../assets/js/main.min.js"></script>

    <script>
        // Feather icons'ı aktif et
        feather.replace();

        let currentOrderData = null;

        // Sipariş detaylarını görüntüle
        function viewOrderDetails(filename) {
            // Modal'ı aç
            const modal = new bootstrap.Modal(document.getElementById('orderDetailsModal'));
            modal.show();
            
            // AJAX ile sipariş detaylarını al
            fetch('orders.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                },
                body: 'action=get_order_details&filename=' + encodeURIComponent(filename)
            })
            .then(response => response.json())
            .then(data => {
                if (data.success) {
                    currentOrderData = data.order;
                    displayOrderDetails(data.order);
                } else {
                    document.getElementById('orderDetailsContent').innerHTML = 
                        '<div class="alert alert-danger">Sipariş detayları yüklenemedi: ' + data.message + '</div>';
                }
            })
            .catch(error => {
                console.error('Error:', error);
                document.getElementById('orderDetailsContent').innerHTML = 
                    '<div class="alert alert-danger">Bir hata oluştu.</div>';
            });
        }

        // Sipariş detaylarını göster
        function displayOrderDetails(order) {
            const images = order.messages.filter(m => m.type === 'photo');
            const textMessages = order.messages.filter(m => m.type === 'text');
            
            let imagesHtml = '';
            let messagesHtml = '';
            
            // Gelişmiş görsel galerisi oluştur
            if (images.length > 0) {
                // İlk görsel büyük olarak göster
                const firstImage = images[0];
                imagesHtml += `
                    <div class="mb-4">
                        <div class="position-relative">
                            <img id="mainImage" src="../../../${firstImage.content}" 
                                 class="img-fluid rounded border" alt="Ana Görsel" 
                                 style="width: 100%; height: auto; cursor: pointer;"
                                 onclick="openImageModal('../../../${firstImage.content}')"
                                 onerror="this.style.display='none'">
                            <div class="position-absolute top-0 start-0 m-2">
                                <span class="badge bg-dark">1 / ${images.length}</span>
                            </div>
                        </div>
                    </div>
                `;
                
                // Küçük görseller için grid
                if (images.length > 1) {
                    imagesHtml += `
                        <div class="mt-3">
                            <div class="d-flex align-items-center justify-content-between mb-3">
                                <h6 class="mb-0">Tüm Görseller</h6>
                                <small class="text-muted">${images.length} görsel</small>
                            </div>
                            <div class="row g-3" style="max-height: 250px; overflow-y: auto;">
                    `;
                    
                    images.forEach((image, index) => {
                        const isActive = index === 0 ? 'border-primary border-2' : 'border';
                        imagesHtml += `
                            <div class="col-3">
                                <div class="position-relative">
                                    <img src="../../../${image.content}" 
                                         class="img-fluid rounded ${isActive}" 
                                         alt="Görsel ${index + 1}" 
                                         style="width: 100%; height: 80px; object-fit: cover; cursor: pointer;"
                                         onclick="changeMainImage('../../../${image.content}', ${index})"
                                         onerror="this.parentElement.parentElement.style.display='none'">
                                    <div class="position-absolute top-0 end-0 m-1">
                                        <span class="badge bg-secondary">${index + 1}</span>
                                    </div>
                                </div>
                            </div>
                        `;
                    });
                    
                    imagesHtml += `
                            </div>
                        </div>
                    `;
                }
            }
            
            // Mesajları düzenle
            textMessages.forEach((message, index) => {
                messagesHtml += `
                    <div class="alert alert-light border-start border-primary border-3 mb-3">
                        <div class="d-flex justify-content-between align-items-start mb-2">
                            <small class="text-muted"><strong>${index + 1}. ${message.owner}</strong></small>
                            <small class="text-muted">${new Date(order.saved_at).toLocaleTimeString('tr-TR')}</small>
                        </div>
                        <div>${message.content}</div>
                    </div>
                `;
            });

            const date = new Date(order.saved_at);
            const formattedDate = date.toLocaleDateString('tr-TR') + ' ' + date.toLocaleTimeString('tr-TR');

            document.getElementById('orderDetailsContent').innerHTML = `
                <div class="row g-4">
                    <!-- Müşteri Bilgileri -->
                    <div class="col-lg-4">
                        <div class="card h-100">
                            <div class="card-header">
                                <h6 class="card-title mb-0">
                                    <i data-feather="user"></i> Müşteri Bilgileri
                                </h6>
                            </div>
                            <div class="card-body">
                                <table class="table table-sm table-borderless">
                                    <tr>
                                        <td class="text-muted">Adı:</td>
                                        <td><strong>${order.owner}</strong></td>
                                    </tr>
                                    <tr>
                                        <td class="text-muted">Tarih:</td>
                                        <td>${formattedDate}</td>
                                    </tr>
                                    <tr>
                                        <td class="text-muted">Toplam Sipariş:</td>
                                        <td><span class="badge bg-success">${order.total_orders || 1}</span></td>
                                    </tr>
                                    <tr>
                                        <td class="text-muted">Görsel Sayısı:</td>
                                        <td><span class="badge bg-info">${images.length}</span></td>
                                    </tr>
                                    <tr>
                                        <td class="text-muted">Mesaj Sayısı:</td>
                                        <td><span class="badge bg-warning">${textMessages.length}</span></td>
                                    </tr>
                                </table>
                            </div>
                        </div>
                    </div>

                    <!-- Sipariş Görselleri -->
                    <div class="col-lg-8">
                        <div class="card h-100">
                            <div class="card-header d-flex justify-content-between align-items-center">
                                <h6 class="card-title mb-0">
                                    <i data-feather="image"></i> Sipariş Görselleri
                                </h6>
                                ${images.length > 0 ? `<span class="badge bg-primary">${images.length} görsel</span>` : ''}
                            </div>
                            <div class="card-body">
                                ${imagesHtml || '<div class="text-center py-5"><i data-feather="image" class="text-muted mb-3" style="width: 48px; height: 48px;"></i><p class="text-muted">Görsel bulunmuyor</p></div>'}
                            </div>
                        </div>
                    </div>
                </div>

                <!-- Sipariş Mesajları -->
                ${textMessages.length > 0 ? `
                <div class="row g-4 mt-2">
                    <div class="col-12">
                        <div class="card">
                            <div class="card-header">
                                <h6 class="card-title mb-0">
                                    <i data-feather="message-circle"></i> Sipariş Mesajları
                                    <span class="badge bg-success ms-2">${textMessages.length}</span>
                                </h6>
                            </div>
                            <div class="card-body" style="max-height: 300px; overflow-y: auto;">
                                ${messagesHtml}
                            </div>
                        </div>
                    </div>
                </div>
                ` : ''}
                
                <!-- Büyük Görsel Modal -->
                <div class="modal fade" id="imageModal" tabindex="-1">
                    <div class="modal-dialog modal-lg modal-dialog-centered">
                        <div class="modal-content">
                            <div class="modal-header">
                                <h5 class="modal-title">Görsel</h5>
                                <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
                            </div>
                            <div class="modal-body text-center">
                                <img id="modalImage" class="img-fluid rounded">
                            </div>
                        </div>
                    </div>
                </div>
            `;

            // Feather iconları yeniden render et
            feather.replace();
        }
        
        // Ana görseli değiştir
        function changeMainImage(imageSrc, index) {
            const mainImage = document.getElementById('mainImage');
            const totalImages = document.querySelectorAll('.col-3 img').length;
            
            if (mainImage) {
                mainImage.src = imageSrc;
                mainImage.onclick = () => openImageModal(imageSrc);
                
                // Badge güncelle
                const badge = mainImage.parentElement.querySelector('.badge');
                if (badge) {
                    badge.textContent = `${index + 1} / ${totalImages}`;
                }
                
                // Thumbnail border'larını güncelle
                document.querySelectorAll('.col-3 img').forEach((img, i) => {
                    if (i === index) {
                        img.className = 'img-fluid rounded border-primary border-2';
                    } else {
                        img.className = 'img-fluid rounded border';
                    }
                });
            }
        }
        
        // Büyük görsel modal'ını aç
        function openImageModal(imageSrc) {
            document.getElementById('modalImage').src = imageSrc;
            const imageModal = new bootstrap.Modal(document.getElementById('imageModal'));
            imageModal.show();
        }

        // Modal'dan PDF yazdırma
        document.getElementById('printCurrentOrder').addEventListener('click', async function() {
            if (currentOrderData) {
                this.disabled = true;
                this.innerHTML = '<i data-feather="loader"></i> PDF Hazırlanıyor...';
                feather.replace();
                
                // Kullanıcıya bilgi ver
                const infoDiv = document.createElement('div');
                infoDiv.className = 'alert alert-info alert-dismissible fade show';
                infoDiv.innerHTML = `
                    <i data-feather="info"></i>
                    <strong>PDF Oluşturuluyor...</strong><br>
                    Resimler yükleniyor ve PDF hazırlanıyor. Bu işlem birkaç saniye sürebilir.
                    <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                `;
                document.querySelector('.main-wrapper').insertBefore(infoDiv, document.querySelector('.main-wrapper').firstChild);
                feather.replace();
                
                try {
                    await generatePDF(currentOrderData);
                    
                    // Başarı mesajı göster
                    infoDiv.className = 'alert alert-success alert-dismissible fade show';
                    infoDiv.innerHTML = `
                        <i data-feather="check-circle"></i>
                        <strong>PDF Başarıyla Oluşturuldu!</strong><br>
                        PDF dosyası indirildi.
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    `;
                    feather.replace();
                    
                    // 3 saniye sonra mesajı kaldır
                    setTimeout(() => {
                        if (infoDiv.parentNode) {
                            infoDiv.parentNode.removeChild(infoDiv);
                        }
                    }, 3000);
                    
                } catch (error) {
                    console.error('PDF generation error:', error);
                    
                    // Hata mesajı göster
                    infoDiv.className = 'alert alert-danger alert-dismissible fade show';
                    infoDiv.innerHTML = `
                        <i data-feather="alert-triangle"></i>
                        <strong>PDF Oluşturulamadı!</strong><br>
                        Hata: ${error.message}
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    `;
                    feather.replace();
                    
                    // 5 saniye sonra hata mesajını kaldır
                    setTimeout(() => {
                        if (infoDiv.parentNode) {
                            infoDiv.parentNode.removeChild(infoDiv);
                        }
                    }, 5000);
                } finally {
                    this.disabled = false;
                    this.innerHTML = '<i data-feather="printer"></i> PDF Yazdır';
                    feather.replace();
                }
            }
        });

        // Sipariş yazdırma
        async function printOrder(filename) {
            try {
                const response = await fetch('orders.php', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded',
                    },
                    body: 'action=get_order_details&filename=' + encodeURIComponent(filename)
                });
                
                const data = await response.json();
                
                if (data.success) {
                    // Show loading state
                    const printBtn = document.querySelector(`button[onclick="printOrder('${filename}')"]`);
                    if (printBtn) {
                        printBtn.disabled = true;
                        printBtn.innerHTML = '<i data-feather="loader"></i> PDF Hazırlanıyor...';
                        feather.replace();
                    }
                    
                    // Kullanıcıya bilgi ver
                    const infoDiv = document.createElement('div');
                    infoDiv.className = 'alert alert-info alert-dismissible fade show';
                    infoDiv.innerHTML = `
                        <i data-feather="info"></i>
                        <strong>PDF Oluşturuluyor...</strong><br>
                        Resimler yükleniyor ve PDF hazırlanıyor. Bu işlem birkaç saniye sürebilir.
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    `;
                    document.querySelector('.main-wrapper').insertBefore(infoDiv, document.querySelector('.main-wrapper').firstChild);
                    feather.replace();
                    
                    await generatePDF(data.order);
                    
                    // Başarı mesajı göster
                    infoDiv.className = 'alert alert-success alert-dismissible fade show';
                    infoDiv.innerHTML = `
                        <i data-feather="check-circle"></i>
                        <strong>PDF Başarıyla Oluşturuldu!</strong><br>
                        PDF dosyası indirildi.
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    `;
                    feather.replace();
                    
                    // 3 saniye sonra mesajı kaldır
                    setTimeout(() => {
                        if (infoDiv.parentNode) {
                            infoDiv.parentNode.removeChild(infoDiv);
                        }
                    }, 3000);
                    
                    // Reset button
                    if (printBtn) {
                        printBtn.disabled = false;
                        printBtn.innerHTML = '<i data-feather="printer"></i>';
                        feather.replace();
                    }
                } else {
                    alert('Sipariş bilgileri yüklenemedi: ' + data.message);
                }
            } catch (error) {
                console.error('Error:', error);
                
                // Hata mesajı göster
                const errorDiv = document.createElement('div');
                errorDiv.className = 'alert alert-danger alert-dismissible fade show';
                errorDiv.innerHTML = `
                    <i data-feather="alert-triangle"></i>
                    <strong>PDF Oluşturulamadı!</strong><br>
                    Hata: ${error.message}
                    <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                `;
                document.querySelector('.main-wrapper').insertBefore(errorDiv, document.querySelector('.main-wrapper').firstChild);
                feather.replace();
                
                // 5 saniye sonra hata mesajını kaldır
                setTimeout(() => {
                    if (errorDiv.parentNode) {
                        errorDiv.parentNode.removeChild(errorDiv);
                    }
                }, 5000);
                
                const printBtn = document.querySelector(`button[onclick="printOrder('${filename}')"]`);
                if (printBtn) {
                    printBtn.disabled = false;
                    printBtn.innerHTML = '<i data-feather="printer"></i>';
                    feather.replace();
                }
            }
        }

        // PDF oluşturma fonksiyonu
        async function generatePDF(order) {
            try {
                console.log('PDF oluşturma başlatılıyor...', order);
                const { jsPDF } = window.jspdf;
                if (!jsPDF) {
                    throw new Error('jsPDF library not loaded');
                }
                if (typeof html2canvas === 'undefined') {
                    throw new Error('html2canvas library not loaded');
                }
                console.log('Kütüphaneler yüklendi, PDF oluşturuluyor...');

                const finalPDF = new jsPDF('p', 'mm', 'a4');
                const images = order.messages.filter(m => m.type === 'photo');
                const textMessages = order.messages.filter(m => m.type === 'text');

                // 1. Sayfa: Sadece bilgilendirme
                console.log('1. sayfa oluşturuluyor...');
                const firstPageHTML = createFirstPageHTML(order, textMessages, images);
                const firstPageCanvas = await createCanvasFromHTML(firstPageHTML);
                addCanvasToPDF(firstPageCanvas, finalPDF, 0);
                console.log('1. sayfa eklendi');

                // Görsel sayfalarını ekle
                if (images.length > 0) {
                    // Resimleri 4'lü gruplara böl
                    for (let i = 0; i < images.length; i += 4) {
                        const pageImages = images.slice(i, i + 4);
                        const pageNumber = Math.floor(i / 4) + 1;
                        
                        console.log(`${pageNumber + 1}. sayfa oluşturuluyor...`);
                        const imagePageHTML = createImagePageHTML(pageImages, pageNumber, i);
                        const imagePageCanvas = await createCanvasFromHTML(imagePageHTML);
                        
                        // Yeni sayfa ekle
                        finalPDF.addPage();
                        addCanvasToPDF(imagePageCanvas, finalPDF, pageNumber);
                        console.log(`${pageNumber + 1}. sayfa eklendi`);
                    }
                }

                // PDF'i kaydet
                const filename = `siparis_${order.id}_${new Date().getTime()}.pdf`;
                finalPDF.save(filename);
                console.log('PDF kaydedildi:', filename);
                alert('PDF başarıyla oluşturuldu!');
            } catch (error) {
                console.error('PDF oluşturma hatası:', error);
                alert('PDF oluşturulurken hata oluştu: ' + error.message);
            }
        }

        // İlk sayfa HTML'i (sadece bilgilendirme)
        function createFirstPageHTML(order, textMessages, images) {
            const date = new Date(order.saved_at);
            const formattedDate = date.toLocaleDateString('tr-TR', {
                year: 'numeric',
                month: 'long',
                day: 'numeric',
                hour: '2-digit',
                minute: '2-digit'
            });

            return `
                <div class="container-fluid p-4" style="font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;">
                    <!-- Header -->
                    <div class="row mb-4">
                        <div class="col-12">
                            <div class="bg-primary text-white p-3 rounded">
                                <h1 class="h3 mb-0">Sipariş Detayları</h1>
                                <small>Sipariş No: ${order.id}</small>
                            </div>
                        </div>
                    </div>
                    <!-- Müşteri Bilgileri -->
                    <div class="row mb-4">
                        <div class="col-12">
                            <div class="card border-0 shadow-sm">
                                <div class="card-header bg-light">
                                    <h5 class="card-title mb-0">
                                        <i class="feather-user me-2"></i>Müşteri Bilgileri
                                    </h5>
                                </div>
                                <div class="card-body">
                                    <div class="row">
                                        <div class="col-md-6">
                                            <div class="d-flex align-items-center mb-3">
                                                <div class="bg-primary rounded-circle d-flex align-items-center justify-content-center me-3" style="width: 50px; height: 50px;">
                                                    <span class="text-white fw-bold">${(order.owner || 'M').charAt(0).toUpperCase()}</span>
                                                </div>
                                                <div>
                                                    <h6 class="mb-1">${order.owner || 'Müşteri'}</h6>
                                                    <small class="text-muted">Müşteri</small>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="col-md-6">
                                            <div class="d-flex align-items-center mb-2">
                                                <i class="feather-calendar text-primary me-2"></i>
                                                <span class="small">Tarih:</span>
                                            </div>
                                            <strong>${formattedDate}</strong>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <!-- Mesajlar -->
                    ${textMessages.length > 0 ? `
                    <div class="row mb-4">
                        <div class="col-12">
                            <div class="card border-0 shadow-sm">
                                <div class="card-header bg-light">
                                    <h5 class="card-title mb-0">
                                        <i class="feather-message-circle me-2"></i>Mesajlar (${textMessages.length} adet)
                                    </h5>
                                </div>
                                <div class="card-body">
                                    ${textMessages.map((msg, index) => `
                                        <div class="alert alert-info border-start border-4 border-info mb-3">
                                            <div class="d-flex align-items-start">
                                                <div class="bg-info rounded-circle d-flex align-items-center justify-content-center me-3" style="width: 30px; height: 30px;">
                                                    <span class="text-white small fw-bold">${index + 1}</span>
                                                </div>
                                                <div class="flex-grow-1">
                                                    <p class="mb-1">${msg.message}</p>
                                                    <small class="text-muted">${new Date(msg.saved_at).toLocaleString('tr-TR')}</small>
                                                </div>
                                            </div>
                                        </div>
                                    `).join('')}
                                </div>
                            </div>
                        </div>
                    </div>
                    ` : ''}
                    <!-- Görsel Bilgisi -->
                    ${images.length > 0 ? `
                    <div class="row mb-4">
                        <div class="col-12">
                            <div class="card border-0 shadow-sm">
                                <div class="card-header bg-light">
                                    <h5 class="card-title mb-0">
                                        <i class="feather-image me-2"></i>Görsel Bilgisi
                                    </h5>
                                </div>
                                <div class="card-body">
                                    <div class="alert alert-success">
                                        <strong>Toplam ${images.length} görsel</strong> bulunmaktadır. 
                                        Görseller sonraki sayfalarda gösterilecektir.
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    ` : ''}
                    <!-- Footer -->
                    <div class="row mt-5">
                        <div class="col-12">
                            <div class="bg-light p-3 rounded text-center">
                                <small class="text-muted">
                                    Bu PDF ${new Date().toLocaleString('tr-TR')} tarihinde oluşturulmuştur.
                                </small>
                            </div>
                        </div>
                    </div>
                </div>
            `;
        }

        // Görsel sayfası HTML'i
        function createImagePageHTML(pageImages, pageNumber, startIndex) {
            return `
                <div class="container-fluid p-4" style="font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;">
                    <!-- Sayfa Başlığı -->
                    <div class="row mb-4">
                        <div class="col-12">
                            <div class="bg-primary text-white p-3 rounded">
                                <h1 class="h3 mb-0">Görsel Galerisi</h1>
                                <small>Sayfa ${pageNumber} • ${pageImages.length} görsel</small>
                            </div>
                        </div>
                    </div>
                    <!-- Resimler -->
                    <div class="row g-4">
                        ${pageImages.map((img, index) => `
                            <div class="col-md-6">
                                <div class="position-relative mb-4">
                                    <div class="bg-primary rounded-circle d-flex align-items-center justify-content-center position-absolute" style="width: 30px; height: 30px; top: 10px; left: 10px; z-index: 10;">
                                        <span class="text-white fw-bold">${startIndex + index + 1}</span>
                                    </div>
                                    <img src="../../../${img.content}" alt="Resim ${startIndex + index + 1}" class="img-fluid rounded w-100" style="width: 100%; height: auto;">
                                </div>
                            </div>
                        `).join('')}
                    </div>
                    <!-- Sayfa Alt Bilgisi -->
                    <div class="row mt-5">
                        <div class="col-12">
                            <div class="bg-light p-3 rounded text-center">
                                <small class="text-muted">
                                    Sayfa ${pageNumber} - ${new Date().toLocaleString('tr-TR')}
                                </small>
                            </div>
                        </div>
                    </div>
                </div>
            `;
        }

        // HTML'den Canvas oluştur
        async function createCanvasFromHTML(htmlContent) {
            try {
                console.log('createCanvasFromHTML başlatılıyor...');
                
                // HTML'i DOM'a ekle (gizli olarak)
                const tempContainer = document.createElement('div');
                tempContainer.innerHTML = htmlContent;
                tempContainer.style.position = 'absolute';
                tempContainer.style.left = '-9999px';
                tempContainer.style.top = '0';
                tempContainer.style.width = '800px';
                tempContainer.style.backgroundColor = 'white';
                document.body.appendChild(tempContainer);
                
                console.log('Geçici container DOM\'a eklendi');
                
                // Resimleri yükle ve base64'e çevir
                const imageElements = tempContainer.querySelectorAll('img');
                console.log(`${imageElements.length} resim bulundu, yükleniyor...`);
                
                if (imageElements.length > 0) {
                    for (let i = 0; i < imageElements.length; i++) {
                        const img = imageElements[i];
                        try {
                            console.log(`Resim ${i + 1} yükleniyor:`, img.src);
                            const response = await fetch(img.src);
                            if (!response.ok) {
                                throw new Error(`HTTP ${response.status}: ${response.statusText}`);
                            }
                            const blob = await response.blob();
                            const reader = new FileReader();
                            await new Promise((resolve, reject) => {
                                reader.onload = () => {
                                    img.src = reader.result;
                                    console.log(`Resim ${i + 1} başarıyla yüklendi`);
                                    resolve();
                                };
                                reader.onerror = () => {
                                    console.error(`Resim ${i + 1} okunamadı:`, reader.error);
                                    reject(reader.error);
                                };
                                reader.readAsDataURL(blob);
                            });
                        } catch (error) {
                            console.warn(`Resim ${i + 1} yüklenemedi:`, img.src, error);
                            // Resim yüklenemezse placeholder göster
                            img.src = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSIjZjhmOWZhIi8+PHRleHQgeD0iNTAlIiB5PSI1MCUiIGZvbnQtZmFtaWx5PSJBcmlhbCwgc2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgZmlsbD0iIzZjNzU3ZCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZHk9Ii4zZW0iPkfDvHJzZWwgW8SfbGVuZW1lZGk8L3RleHQ+PC9zdmc+';
                            img.alt = 'Resim yüklenemedi';
                        }
                    }
                }
                
                console.log('Tüm resimler yüklendi, Canvas oluşturuluyor...');
                
                // Resimlerin render olması için kısa bir bekleme
                await new Promise(resolve => setTimeout(resolve, 500));
                
                // HTML2Canvas ile render et
                console.log('HTML2Canvas başlatılıyor...');
                const canvas = await html2canvas(tempContainer, {
                    width: 800,
                    height: tempContainer.scrollHeight,
                    scale: 2,
                    useCORS: true,
                    allowTaint: true,
                    backgroundColor: '#ffffff',
                    logging: true,
                    imageTimeout: 15000
                });
                console.log('Canvas oluşturuldu, boyutlar:', canvas.width, 'x', canvas.height);
                
                // DOM'dan kaldır
                document.body.removeChild(tempContainer);
                console.log('Geçici container DOM\'dan kaldırıldı');
                
                return canvas;
            } catch (error) {
                console.error('createCanvasFromHTML hatası:', error);
                // DOM'dan kaldırmaya çalış
                try {
                    if (tempContainer && tempContainer.parentNode) {
                        document.body.removeChild(tempContainer);
                    }
                } catch (cleanupError) {
                    console.warn('Container temizleme hatası:', cleanupError);
                }
                throw error;
            }
        }
        
        // Canvas'ı PDF'e ekle
        function addCanvasToPDF(canvas, pdf, pageIndex) {
            try {
                console.log(`addCanvasToPDF başlatılıyor - Sayfa ${pageIndex}`);
                console.log('Canvas boyutları:', canvas.width, 'x', canvas.height);
                
                const imgData = canvas.toDataURL('image/png');
                const imgWidth = 210; // A4 genişliği
                const pageHeight = 295; // A4 yüksekliği
                const imgHeight = (canvas.height * imgWidth) / canvas.width;
                let heightLeft = imgHeight;
                let position = 0;
                
                console.log('Hesaplanan boyutlar:', { imgWidth, imgHeight, pageHeight, heightLeft });
                
                // İlk sayfa
                pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
                heightLeft -= pageHeight;
                console.log('İlk sayfa resmi eklendi, kalan yükseklik:', heightLeft);
                
                // Ek sayfalar gerekirse
                let pageCount = 1;
                while (heightLeft >= 0) {
                    position = heightLeft - imgHeight + pageHeight;
                    pdf.addPage();
                    pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight);
                    heightLeft -= pageHeight;
                    pageCount++;
                    console.log(`Ek sayfa ${pageCount} eklendi, kalan yükseklik:`, heightLeft);
                }
                
                console.log(`Toplam ${pageCount} sayfa eklendi`);
            } catch (error) {
                console.error('addCanvasToPDF hatası:', error);
                throw error;
            }
        }

        // Türkçe karakter dönüştürücü
        function convertTurkishChars(text) {
            if (!text) return '';
            return text.toString()
                .replace(/Ğ/g, 'G')
                .replace(/ğ/g, 'g')
                .replace(/Ü/g, 'U')
                .replace(/ü/g, 'u')
                .replace(/Ş/g, 'S')
                .replace(/ş/g, 's')
                .replace(/İ/g, 'I')
                .replace(/ı/g, 'i')
                .replace(/Ö/g, 'O')
                .replace(/ö/g, 'o')
                .replace(/Ç/g, 'C')
                .replace(/ç/g, 'c');
        }

        // Tüm siparişleri yazdır - Bootstrap styled
        function printAllOrders() {
            const { jsPDF } = window.jspdf;
            const doc = new jsPDF();
            
            // Bootstrap header
            doc.setFillColor(13, 110, 253); // Bootstrap primary
            doc.rect(0, 0, 210, 30, 'F');
            
            doc.setTextColor(255, 255, 255);
            doc.setFontSize(18);
            doc.setFont('helvetica', 'bold');
            doc.text('TÜM SİPARİŞLER', 105, 18, { align: 'center' });
            
            // White accent line
            doc.setFillColor(255, 255, 255);
            doc.rect(0, 25, 210, 2, 'F');
            
            let yPosition = 45;
            doc.setFontSize(12);
            
            // Bootstrap table headers
            doc.setTextColor(33, 37, 41); // Bootstrap dark
            doc.setFont('helvetica', 'bold');
            doc.text('Müşteri Adı', 20, yPosition);
            doc.text('Tarih', 80, yPosition);
            doc.text('Mesaj Sayısı', 140, yPosition);
            yPosition += 10;
            
            // Bootstrap border
            doc.setDrawColor(222, 226, 230); // Bootstrap border
            doc.setLineWidth(0.5);
            doc.line(20, yPosition - 5, 190, yPosition - 5);
            
            // Table content
            doc.setFont('helvetica', 'normal');
            <?php foreach ($orders as $order): ?>
                if (yPosition > 270) {
                    doc.addPage();
                    yPosition = 20;
                }
                
                doc.setTextColor(33, 37, 41); // Bootstrap dark
                doc.text('<?php echo addslashes($order['owner']); ?>', 20, yPosition);
                doc.text('<?php echo (new DateTime($order['saved_at']))->format('d.m.Y H:i'); ?>', 80, yPosition);
                doc.text('<?php echo $order['message_count']; ?>', 140, yPosition);
                yPosition += 8;
            <?php endforeach; ?>
            
            const today = new Date();
            const filename = `tum_siparisler_${today.getTime()}.pdf`;
            doc.save(filename);
        }

        // Sipariş silme
        function deleteOrder(filename, ownerName) {
            if (confirm(`"${ownerName}" müşterisinin siparişini silmek istediğinizden emin misiniz?`)) {
                fetch('orders.php', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/x-www-form-urlencoded',
                    },
                    body: 'action=delete&filename=' + encodeURIComponent(filename)
                })
                .then(response => response.json())
                .then(data => {
                    if (data.success) {
                        // Sayfayı yenile
                        location.reload();
                    } else {
                        alert('Silme işlemi başarısız: ' + data.message);
                    }
                })
                .catch(error => {
                    console.error('Error:', error);
                    alert('Bir hata oluştu.');
                });
            }
        }

        // Sayfa yüklendiğinde loader'ı gizle
        document.addEventListener('DOMContentLoaded', function() {
            setTimeout(function() {
                document.querySelector('.loader').style.display = 'none';
            }, 500);
            
            // Feather iconları render et
            feather.replace();
        });
    </script>
</body>
</html>