<?php
/**
 * Admin - Yeni Slider Ekle (Otomatik Görsel Optimizasyonlu)
 * Konum: /magaza/admin/slider/ekle.php
 */
require_once '../../includes/db.php';
require_once '../../includes/functions.php';
adminCheck();

$mesaj = '';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $title = trim($_POST['title']);
    $subtitle = trim($_POST['subtitle']);
    $button_text = trim($_POST['button_text']);
    $button_link = trim($_POST['button_link']);
    $sort_order = (int)$_POST['sort_order'];
    $status = isset($_POST['status']) ? 1 : 0;

    // Resim Yükleme ve Optimizasyon İşlemi
    if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
        $dosya = $_FILES['image'];
        $uzanti = strtolower(pathinfo($dosya['name'], PATHINFO_EXTENSION));
        $izin_verilenler = ['jpg', 'jpeg', 'png', 'webp', 'gif'];

        if (!in_array($uzanti, $izin_verilenler)) {
            $mesaj = "<div class='alert alert-danger shadow-sm'>Hata: Sadece JPG, PNG, WEBP veya GIF yükleyebilirsiniz.</div>";
        } elseif ($dosya['size'] > 5 * 1024 * 1024) {
            $mesaj = "<div class='alert alert-danger shadow-sm'>Hata: Dosya boyutu 5MB'dan büyük olamaz.</div>";
        } else {
            $klasor = "../../uploads/sliders/";
            if (!is_dir($klasor)) mkdir($klasor, 0777, true);
            
            // --- GÖRSEL OPTİMİZASYON MOTORU ---
            // Yüklenen resmin boyutlarını al
            list($width, $height) = getimagesize($dosya['tmp_name']);
            $max_width = 1920; // Slider için ideal maksimum genişlik

            // Oran hesapla ve yeni boyutları bul
            if ($width > $max_width) {
                $oran = $width / $height;
                $new_width = $max_width;
                $new_height = $max_width / $oran;
            } else {
                $new_width = $width;
                $new_height = $height;
            }

            // Yeni boş tuvali oluştur
            $yeni_resim = imagecreatetruecolor($new_width, $new_height);

            // Şeffaflık (PNG/GIF) desteğini koru
            imagealphablending($yeni_resim, false);
            imagesavealpha($yeni_resim, true);
            $transparent = imagecolorallocatealpha($yeni_resim, 255, 255, 255, 127);
            imagefilledrectangle($yeni_resim, 0, 0, $new_width, $new_height, $transparent);

            // Uzantıya göre resmi belleğe al
            $kaynak = null;
            switch ($uzanti) {
                case 'jpg':
                case 'jpeg':
                    $kaynak = imagecreatefromjpeg($dosya['tmp_name']);
                    break;
                case 'png':
                    $kaynak = imagecreatefrompng($dosya['tmp_name']);
                    break;
                case 'webp':
                    $kaynak = imagecreatefromwebp($dosya['tmp_name']);
                    break;
                case 'gif':
                    $kaynak = imagecreatefromgif($dosya['tmp_name']);
                    break;
            }

            if ($kaynak) {
                // Resmi yeni boyutlarıyla tuvale kopyala (Yüksek kalite resample)
                imagecopyresampled($yeni_resim, $kaynak, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

                // Her formatı otomatik olarak en hızlı/hafif olan WEBP'ye çevirip kaydediyoruz
                $yeni_ad = "slider_" . uniqid() . ".webp";
                $hedef = $klasor . $yeni_ad;

                // Kaliteyi %80 olarak ayarladık (Gözle fark edilmez, boyutu inanılmaz küçültür)
                if (imagewebp($yeni_resim, $hedef, 80)) {
                    $db_path = "uploads/sliders/" . $yeni_ad;
                    
                    // Veritabanına Yaz
                    $stmt = $db->prepare("INSERT INTO sliders (title, subtitle, image_path, button_text, button_link, sort_order, status) VALUES (?, ?, ?, ?, ?, ?, ?)");
                    $stmt->execute([$title, $subtitle, $db_path, $button_text, $button_link, $sort_order, $status]);
                    
                    $mesaj = "<div class='alert alert-success shadow-sm'><i class='bi bi-check-circle-fill me-2'></i> Harika! Görsel otomatik optimize edildi (WEBP) ve vitrine eklendi.</div>";
                } else {
                    $mesaj = "<div class='alert alert-danger shadow-sm'>Hata: Resim optimize edilirken bir sorun oluştu.</div>";
                }

                // Belleği temizle
                imagedestroy($yeni_resim);
                imagedestroy($kaynak);
            } else {
                 $mesaj = "<div class='alert alert-danger shadow-sm'>Hata: Geçersiz resim formatı yapısı.</div>";
            }
            // --- OPTİMİZASYON BİTİŞ ---
        }
    } else {
        $mesaj = "<div class='alert alert-warning shadow-sm'>Lütfen vitrin için bir görsel seçin!</div>";
    }
}

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-2 border-2"><i class="bi bi-arrow-left"></i> Geri</a>
            Yeni Slider Ekle
        </h2>
    </div>
</div>

<?= $mesaj ?>

<form action="" method="POST" enctype="multipart/form-data">
    <div class="row text-dark">
        <div class="col-lg-8">
            <div class="card shadow-sm border-0 rounded-4 mb-4">
                <div class="card-body p-4 p-md-5">
                    
                    <div class="mb-4">
                        <label class="form-label fw-bold">Slider Görseli <span class="text-danger">*</span></label>
                        <input type="file" name="image" class="form-control form-control-lg border-2" accept="image/*" required>
                        <div class="form-text mt-2 text-success fw-bold">
                            <i class="bi bi-magic me-1"></i> Sistem yüklediğiniz resmi otomatik olarak optimize edecek ve WEBP formatına dönüştürecektir. Siteniz ışık hızında açılacak!
                        </div>
                          <div class="form-text mt-2"><i class="bi bi-info-circle me-1"></i> Önerilen boyut: 1920x600px. Sadece JPG, PNG veya WEBP (Maks 5MB).</div>
                    </div>

                    <div class="row g-3 mb-4">
                        <div class="col-md-6">
                            <label class="form-label fw-bold small text-muted">Ana Başlık (Opsiyonel)</label>
                            <input type="text" name="title" class="form-control border-2" placeholder="Örn: 2026 YKS Kampı Başladı!">
                        </div>
                        <div class="col-md-6">
                            <label class="form-label fw-bold small text-muted">Alt Başlık (Opsiyonel)</label>
                            <input type="text" name="subtitle" class="form-control border-2" placeholder="Örn: Tüm denemelerde %20 indirim fırsatı.">
                        </div>
                    </div>

                    <div class="row g-3">
                        <div class="col-md-6">
                            <label class="form-label fw-bold small text-muted">Buton Yazısı</label>
                            <input type="text" name="button_text" class="form-control border-2" value="İncele">
                        </div>
                        <div class="col-md-6">
                            <label class="form-label fw-bold small text-muted">Butonun Gideceği Link</label>
                            <input type="text" name="button_link" class="form-control border-2" placeholder="Örn: urun-kategori.php?kategori=deneme" value="#">
                        </div>
                    </div>

                </div>
            </div>
        </div>

        <div class="col-lg-4">
            <div class="card shadow-sm border-0 rounded-4 mb-4">
                <div class="card-header bg-white py-3 border-bottom"><h6 class="mb-0 fw-bold"><i class="bi bi-gear-fill text-secondary me-2"></i>Yayın Ayarları</h6></div>
                <div class="card-body p-4">
                    <div class="mb-4">
                        <label class="form-label fw-bold small text-muted">Sıralama (Öncelik)</label>
                        <input type="number" name="sort_order" class="form-control border-2" value="0">
                        <div class="form-text small">Küçük rakamlar önce gösterilir.</div>
                    </div>
                    
                    <div class="form-check form-switch mb-4 fs-5">
                        <input class="form-check-input cursor-pointer" type="checkbox" name="status" id="statusSwitch" checked>
                        <label class="form-check-label fs-6 ms-2 fw-bold" for="statusSwitch">Sitede Göster</label>
                    </div>

                    <button type="submit" class="btn btn-primary btn-lg w-100 fw-bold shadow-sm rounded-pill">
                        <i class="bi bi-cloud-arrow-up-fill me-1"></i> Yükle ve Kaydet
                    </button>
                </div>
            </div>
        </div>
    </div>
</form>

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