<?php
include '../auth.php';
include '../../koneksi.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $id_user = $_SESSION['user_id']; // Ambil dari sesi login
    $judul = $_POST['judul'];
    $konten = $_POST['konten'];
    $kategori = $_POST['kategori'];
    $meta_deskripsi = $_POST['meta_deskripsi'];
    $meta_keyword = $_POST['meta_keyword'];
    $tanggal = date("Y-m-d H:i:s");

    $_SESSION['old_input'] = [
        'judul' => $judul,
        'konten' => $konten,
        'kategori' => $kategori,
        'meta_deskripsi' => $meta_deskripsi,
        'meta_keyword' => $meta_keyword,
    ];
    
    // Generate slug dari judul dengan memastikan unik
    function generateUniqueSlug($conn, $judul) {
        // Buat slug dasar dari judul
        $slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $judul), '-'));
        $originalSlug = $slug;
        $counter = 1;
    
        // Cek apakah slug sudah ada di database
        $sql = "SELECT COUNT(*) AS count FROM detail_artikel WHERE slug = ?";
        $stmt = $conn->prepare($sql);
        $stmt->bind_param("s", $slug);
        
        while (true) {
            $stmt->execute();
            $result = $stmt->get_result();
            $row = $result->fetch_assoc();
    
            // Jika slug sudah ada, tambahkan angka di belakangnya
            if ($row['count'] > 0) {
                $slug = $originalSlug . '-' . $counter;
                $counter++;
            } else {
                break; // Keluar dari loop jika slug sudah unik
            }
        }
    
        return $slug;
    }

    $slug = generateUniqueSlug($conn, $judul);

    // **Upload Gambar**
    $gambarNama = "";
    if (!empty($_FILES['gambar']['name']) && $_FILES['gambar']['size'] > 0) {
        $gambarTmp = $_FILES['gambar']['tmp_name'];
        $gambarNama = time() . "_" . basename($_FILES['gambar']['name']);
        $targetDir = "../../uploads/artikel/";
        $targetFile = $targetDir . $gambarNama;

        // Cek format gambar
        $ext = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
        $allowedExt = ['jpg', 'jpeg', 'png', 'gif'];
        if (!in_array($ext, $allowedExt)) {
            $_SESSION['error'] = "Format gambar tidak valid! Gunakan JPG, JPEG, PNG, atau GIF.";
            header("Location: ../artikel/tambah.php");
            exit();
        }

        // Pindahkan file
        if (!move_uploaded_file($gambarTmp, $targetFile)) {
            $_SESSION['error'] = "Gagal mengunggah gambar!";
            header("Location: ../artikel");
            exit();
        }
    }

    // **Cek apakah artikel sudah ada untuk id_user**
    $cekArtikel = "SELECT id_artikel FROM artikel WHERE id_user = ?";
    $stmt = $conn->prepare($cekArtikel);
    $stmt->bind_param("i", $id_user);
    $stmt->execute();
    $stmt->bind_result($id_artikel);
    $stmt->fetch();
    $stmt->close();
    
    if (!$id_artikel) {
        // **Buat artikel baru**
        $sqlArtikel = "INSERT INTO artikel (id_user) VALUES (?)";
        $stmt = $conn->prepare($sqlArtikel);
        $stmt->bind_param("i", $id_user);
        if ($stmt->execute()) {
            $id_artikel = $stmt->insert_id;
        } else {
            $_SESSION['error'] = "Gagal menyimpan artikel!";
            header("Location: ../artikel");
            exit();
        }
        $stmt->close();
    }

    // **Buat SEO baru setiap kali artikel baru**
    $sqlSeo = "INSERT INTO seo_artikel (katakunci_seo, deskripsi_seo) VALUES (?, ?)";
    $stmt = $conn->prepare($sqlSeo);
    $stmt->bind_param("ss", $meta_keyword, $meta_deskripsi);
    if ($stmt->execute()) {
        $id_seo_artikel = $stmt->insert_id;
    } else {
        $_SESSION['error'] = "Gagal menyimpan data SEO!";
        header("Location: ../artikel");
        exit();
    }
    $stmt->close();

    // **Simpan ke tabel detail_artikel**
    $sqlDetail = "INSERT INTO detail_artikel (id_artikel, id_seo_artikel, judul_artikel, deskripsi_artikel, gambar_artikel, kategori, tanggal, slug) 
                  VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
    
    $stmt = $conn->prepare($sqlDetail);
    $stmt->bind_param("iissssss", $id_artikel, $id_seo_artikel, $judul, $konten, $gambarNama, $kategori, $tanggal, $slug);

    if ($stmt->execute()) {
        $_SESSION['success'] = "Data Artikel berhasil ditambahkan!";
          unset($_SESSION['old_input']);
    } else {
        $_SESSION['error'] = "Gagal menyimpan detail artikel!";
    }

    $stmt->close();
    $conn->close();

    header("Location: ../artikel");
    exit();
}
?>
