<?php

class Evaluation {
    private $conn;
    private $table_name = "evaluations";

    // Properti Objek
    public $id;
    public $nama;
    public $email;
    public $unit;
    public $jabatan;
    public $lama_penggunaan;
    public $pengalaman_pengguna;
    public $pemahaman_unit;
    public $usulan_fitur;
    public $saran_pengembangan;
    public $created_at;

    public function __construct($db) {
        $this->conn = $db;
    }

    // Method untuk menyimpan data evaluasi baru
    public function save() {
        // Pastikan semua kolom ada di dalam query
        $query = "INSERT INTO " . $this->table_name . "
                  SET
                    nama=:nama,
                    email=:email,
                    unit=:unit,
                    jabatan=:jabatan,
                    lama_penggunaan=:lama_penggunaan,
                    pengalaman_pengguna=:pengalaman_pengguna,
                    pemahaman_unit=:pemahaman_unit,
                    usulan_fitur=:usulan_fitur,
                    saran_pengembangan=:saran_pengembangan";

        $stmt = $this->conn->prepare($query);

        // Membersihkan semua data input sebagai teks biasa
        $this->nama = htmlspecialchars(strip_tags($this->nama));
        $this->email = htmlspecialchars(strip_tags($this->email));
        $this->unit = htmlspecialchars(strip_tags($this->unit));
        $this->jabatan = htmlspecialchars(strip_tags($this->jabatan));
        $this->lama_penggunaan = htmlspecialchars(strip_tags($this->lama_penggunaan));
        $this->pengalaman_pengguna = htmlspecialchars(strip_tags($this->pengalaman_pengguna));
        $this->pemahaman_unit = htmlspecialchars(strip_tags($this->pemahaman_unit));
        $this->usulan_fitur = htmlspecialchars(strip_tags($this->usulan_fitur));
        $this->saran_pengembangan = htmlspecialchars(strip_tags($this->saran_pengembangan));

        // Mengikat semua nilai
        $stmt->bindParam(":nama", $this->nama);
        $stmt->bindParam(":email", $this->email);
        $stmt->bindParam(":unit", $this->unit);
        $stmt->bindParam(":jabatan", $this->jabatan);
        $stmt->bindParam(":lama_penggunaan", $this->lama_penggunaan);
        $stmt->bindParam(":pengalaman_pengguna", $this->pengalaman_pengguna);
        $stmt->bindParam(":pemahaman_unit", $this->pemahaman_unit);
        $stmt->bindParam(":usulan_fitur", $this->usulan_fitur);
        $stmt->bindParam(":saran_pengembangan", $this->saran_pengembangan);

        if ($stmt->execute()) {
            return true;
        }

        return false;
    }

    // Method untuk mengambil semua data evaluasi
    public function getAll() {
        $query = "SELECT * FROM " . $this->table_name . " ORDER BY created_at DESC";
        $stmt = $this->conn->prepare($query);
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}
