<?php

include 'session.php';
include '../config/koneksi.php';


/* =====================================================
   CEK ID PRODUK
===================================================== */

if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    die("ID produk tidak valid.");
}

$id = (int) $_GET['id'];


/* =====================================================
   AMBIL DATA PRODUK
===================================================== */

$query = mysqli_query($conn, "
    SELECT *
    FROM produk
    WHERE id_produk = '$id'
");

if (!$query) {
    die("Query gagal: " . mysqli_error($conn));
}


/* =====================================================
   CEK DATA PRODUK
===================================================== */

if (mysqli_num_rows($query) == 0) {
    die("Data produk tidak ditemukan.");
}


/* =====================================================
   SIMPAN DATA KE VARIABEL $data
===================================================== */

$data = mysqli_fetch_assoc($query);


/* =====================================================
   PROSES UPDATE PRODUK
===================================================== */

if (isset($_POST['update'])) {

    $id_kategori  = (int) $_POST['id_kategori'];
    $nama_produk  = trim($_POST['nama_produk']);
    $harga        = (float) $_POST['harga'];
    $deskripsi    = trim($_POST['deskripsi']);
    $nama_penjual = trim($_POST['nama_penjual']);
    $no_hp        = trim($_POST['no_hp']);

    /* Foto lama */

    $foto = $data['foto'];


    /* =================================================
       CEK UPLOAD FOTO BARU
    ================================================= */

    if (
        isset($_FILES['foto']) &&
        $_FILES['foto']['error'] === UPLOAD_ERR_OK
    ) {

        $nama_file = $_FILES['foto']['name'];
        $tmp_file  = $_FILES['foto']['tmp_name'];
        $ukuran    = $_FILES['foto']['size'];

        /* Ekstensi file */

        $ekstensi = strtolower(
            pathinfo($nama_file, PATHINFO_EXTENSION)
        );

        $ekstensi_valid = ['jpg', 'jpeg', 'png'];


        /* =================================================
           CEK EKSTENSI
        ================================================= */

        if (!in_array($ekstensi, $ekstensi_valid)) {

            echo "<script>
                alert('Format foto harus JPG, JPEG, atau PNG.');
                window.history.back();
            </script>";

            exit;
        }


        /* =================================================
           CEK UKURAN
           Maksimal 2 MB
        ================================================= */

        if ($ukuran > 2 * 1024 * 1024) {

            echo "<script>
                alert('Ukuran foto maksimal 2 MB.');
                window.history.back();
            </script>";

            exit;
        }


        /* =================================================
           BUAT NAMA FILE BARU
        ================================================= */

        $nama_baru = uniqid('produk_', true) . '.' . $ekstensi;

        $folder = "../assets/img/";

        $tujuan = $folder . $nama_baru;


        /* =================================================
           UPLOAD FOTO
        ================================================= */

        if (move_uploaded_file($tmp_file, $tujuan)) {

            /* Hapus foto lama */

            if (!empty($data['foto'])) {

                $foto_lama = $folder . $data['foto'];

                if (file_exists($foto_lama)) {
                    unlink($foto_lama);
                }
            }

            $foto = $nama_baru;

        } else {

            echo "<script>
                alert('Foto gagal diupload.');
                window.history.back();
            </script>";

            exit;
        }
    }


    /* =====================================================
       UPDATE DATABASE
    ===================================================== */

    $update = mysqli_query($conn, "

        UPDATE produk SET

            id_kategori  = '$id_kategori',
            nama_produk  = '$nama_produk',
            harga        = '$harga',
            deskripsi    = '$deskripsi',
            nama_penjual = '$nama_penjual',
            no_hp        = '$no_hp',
            foto         = '$foto'

        WHERE id_produk = '$id'

    ");


    /* =====================================================
       HASIL UPDATE
    ===================================================== */

    if ($update) {

        echo "<script>

            alert('Produk berhasil diperbarui.');

            window.location='produk_admin.php';

        </script>";

        exit;

    } else {

        echo "<script>

            alert('Gagal memperbarui produk.');

            window.history.back();

        </script>";

        exit;
    }
}

?>

<!DOCTYPE html>

<html lang="id">

<head>

    <meta charset="UTF-8">

    <meta
        name="viewport"
        content="width=device-width, initial-scale=1.0">

    <title>Edit Produk Desa</title>


    <!-- CSS -->

    <link
        rel="stylesheet"
        href="../assets/css/edit_produk_admin.css">

</head>


<body>


<div class="container">


    <!-- =================================================
         HEADER
    ================================================== -->

    <div class="header">

        <a
            href="produk_admin.php"
            class="btn-kembali">

            ← Kembali

        </a>


        <h1>

            🛍 Edit Produk

        </h1>

    </div>



    <!-- =================================================
         CARD FORM
    ================================================== -->

    <div class="card">


        <form
            method="POST"
            enctype="multipart/form-data">


            <!-- =================================================
                 KATEGORI
            ================================================== -->

            <div class="form-group">

                <label for="id_kategori">

                    Kategori Produk

                </label>


                <select
                    id="id_kategori"
                    name="id_kategori"
                    required>

                    <option value="">

                        -- Pilih Kategori --

                    </option>


                    <?php

                    $kategori = mysqli_query(
                        $conn,
                        "
                        SELECT *
                        FROM kategori_produk
                        ORDER BY nama_kategori ASC
                        "
                    );


                    while (
                        $k = mysqli_fetch_assoc($kategori)
                    ) {

                    ?>

                        <option
                            value="<?= $k['id_kategori']; ?>"
                            <?= (
                                $k['id_kategori']
                                == $data['id_kategori']
                            )
                            ? 'selected'
                            : '';
                            ?>>

                            <?= htmlspecialchars(
                                $k['nama_kategori']
                            ); ?>

                        </option>

                    <?php

                    }

                    ?>

                </select>

            </div>



            <!-- =================================================
                 NAMA PRODUK
            ================================================== -->

            <div class="form-group">

                <label for="nama_produk">

                    Nama Produk

                </label>


                <input
                    type="text"
                    id="nama_produk"
                    name="nama_produk"
                    value="<?= htmlspecialchars(
                        $data['nama_produk']
                    ); ?>"
                    placeholder="Masukkan nama produk"
                    required>

            </div>



            <!-- =================================================
                 HARGA
            ================================================== -->

            <div class="form-group">

                <label for="harga">

                    Harga Produk

                </label>


                <input
                    type="number"
                    id="harga"
                    name="harga"
                    value="<?= htmlspecialchars(
                        $data['harga']
                    ); ?>"
                    placeholder="Contoh: 25000"
                    min="0"
                    required>

            </div>



            <!-- =================================================
                 DESKRIPSI
            ================================================== -->

            <div class="form-group">

                <label for="deskripsi">

                    Deskripsi Produk

                </label>


                <textarea
                    id="deskripsi"
                    name="deskripsi"
                    rows="6"
                    placeholder="Masukkan deskripsi produk"><?= htmlspecialchars(
                        $data['deskripsi']
                    ); ?></textarea>

            </div>



            <!-- =================================================
                 NAMA PENJUAL
            ================================================== -->

            <div class="form-group">

                <label for="nama_penjual">

                    Nama Penjual

                </label>


                <input
                    type="text"
                    id="nama_penjual"
                    name="nama_penjual"
                    value="<?= htmlspecialchars(
                        $data['nama_penjual']
                    ); ?>"
                    placeholder="Masukkan nama penjual">

            </div>



            <!-- =================================================
                 NOMOR WHATSAPP
            ================================================== -->

            <div class="form-group">

                <label for="no_hp">

                    Nomor WhatsApp

                </label>


                <input
                    type="text"
                    id="no_hp"
                    name="no_hp"
                    value="<?= htmlspecialchars(
                        $data['no_hp']
                    ); ?>"
                    placeholder="Contoh: 081234567890">

            </div>



            <!-- =================================================
                 FOTO SAAT INI
            ================================================== -->

            <div class="form-group">

                <label>

                    Foto Saat Ini

                </label>


                <?php if (!empty($data['foto'])) { ?>

                    <div class="foto-saat-ini">

                        <img
                            src="../assets/img/<?= htmlspecialchars(
                                $data['foto']
                            ); ?>"
                            alt="Foto <?= htmlspecialchars(
                                $data['nama_produk']
                            ); ?>">

                    </div>

                <?php } else { ?>

                    <div class="tidak-ada-foto">

                        Belum ada foto produk.

                    </div>

                <?php } ?>

            </div>



            <!-- =================================================
                 GANTI FOTO
            ================================================== -->

            <div class="form-group">

                <label for="foto">

                    Ganti Foto Produk

                </label>


                <input
                    type="file"
                    id="foto"
                    name="foto"
                    accept=".jpg,.jpeg,.png">


                <div class="info-file">

                    ✔ Format: JPG, JPEG, PNG
                    <br>

                    ✔ Maksimal ukuran: 2 MB

                </div>


                <p
                    id="nama-file"
                    class="nama-file">

                    Belum ada file baru dipilih.

                </p>


                <!-- Preview foto baru -->

                <div
                    class="preview-gambar"
                    id="preview-container">

                    <img
                        id="preview"
                        src=""
                        alt="Preview Foto Baru">

                </div>

            </div>



            <!-- =================================================
                 TOMBOL AKSI
            ================================================== -->

            <div class="aksi">

                <a
                    href="produk_admin.php"
                    class="btn-batal">

                    ← Batal

                </a>


                <button
                    type="submit"
                    name="update"
                    class="btn-simpan">

                    💾 Simpan Perubahan

                </button>

            </div>


        </form>

    </div>

</div>



<!-- =================================================
     JAVASCRIPT PREVIEW FOTO
================================================== -->

<script>

const fotoInput = document.getElementById('foto');

const preview = document.getElementById('preview');

const previewContainer =
    document.getElementById('preview-container');

const namaFile =
    document.getElementById('nama-file');


fotoInput.addEventListener('change', function () {

    const file = this.files[0];


    if (!file) {

        namaFile.textContent =
            'Belum ada file baru dipilih.';

        preview.src = '';

        previewContainer.style.display = 'none';

        return;

    }


    /* Nama file */

    namaFile.textContent =
        'File dipilih: ' + file.name;


    /* Preview */

    const reader = new FileReader();


    reader.onload = function (e) {

        preview.src = e.target.result;

        previewContainer.style.display = 'block';

    };


    reader.readAsDataURL(file);

});

</script>


</body>

</html>