<!-- Realisatsiooni aluseks on võetud:
PHP Object Oriented CRUD Example with Bootstrap
Kasutatud 6.04.2016
https://www.codeofaninja.com/2014/06/php-object-oriented-crud-example-oop.html
-->

<?php
/*
======================
Hinnatava eseme klass
======================
*/
class Hinnatav
{
    
    private $conn;
    private $tabel = "esemed_hindamine";
    
    public $id;
    public $nimi;
    public $aeg;
    public $email;
    public $staatus;
    public $kirjeldus;
    
    public function __construct($db)
    {
        $this->conn = $db;
    }
    
    function lisamine()
    {
        // Uue hindamisele saadetud eseme lisamine andmebaasi
        $query = "INSERT INTO " . $this->tabel . " SET nimi= ?, email= ?, kirjeldus= ?";
        
        $stmt = $this->conn->prepare($query);
        
        $this->nimi         = htmlspecialchars(strip_tags($this->nimi));
        $this->email         = htmlspecialchars(strip_tags($this->email));
        $this->kirjeldus    = htmlspecialchars(strip_tags($this->kirjeldus));
        
        $stmt->bindParam(1, $this->nimi);
        $stmt->bindParam(2, $this->email);
        $stmt->bindParam(3, $this->kirjeldus);
        
        if ($stmt->execute()) {
            return true;
        } else {
            return false;
        }
    }

        function lugemine()
    {
        // Andmebaasist kõikide hindamisele saadetud esemete lugemine ajalises järjestuses
        $query = "SELECT id, aeg, nimi, email, kirjeldus, staatus FROM " . $this->tabel . " ORDER BY aeg DESC";
        
        $stmt = $this->conn->prepare($query);
        $stmt->execute();
        
        return $stmt;
    }

    function margiHinnatuks($id)
    {
        // Hindamisele saadetud eseme hinnatuks märkimine
        $query = "UPDATE " . $this->tabel . " SET staatus = '1' WHERE id = ?";
        
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(1, $id);
        $stmt->execute();
    }

    function lugemineID()
    {
        // Hinnatava eseme detailide pärimine andmebaasist eseme ID järgi
        $query = "SELECT nimi, email, aeg, kirjeldus, staatus FROM " . $this->tabel . " WHERE id = ? LIMIT 0,1";
        
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(1, $this->id);
        $stmt->execute();
        
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        
        $this->nimi = $row['nimi'];
        $this->aeg  = $row['aeg'];
        $this->email  = $row['email'];
        $this->staatus  = $row['staatus'];
        $this->kirjeldus  = $row['kirjeldus'];
    }

        function send_mail($email, $message, $subject)
    {   
        // Hinnapäringu vastuse saatmine kliendile
        // PHPMaileri jaoks on loodud näidiskonto, mille andmed on toodud allpool
        require_once ROOT . 'scripts/mailer/class.phpmailer.php';
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPDebug  = 0;
        $mail->SMTPAuth   = true;
        $mail->SMTPSecure = "ssl";
        $mail->Host       = "smtp.gmail.com";
        $mail->Port       = 465;
        $mail->AddAddress($email);
        $mail->Username = "oksjoniportaal@gmail.com";
        $mail->Password = "oksjoniportaal1";
        $mail->SetFrom('oksjoniportaal@gmail.com', 'Oksjoniportaal');
        $mail->AddReplyTo("oksjoniportaal@gmail.com", "Oksjoniportaal");
        $mail->Subject = $subject;
        $mail->MsgHTML($message);
        $mail->Send();
    }
}