<!-- 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
/*
======================
Eseme klass
======================
*/
class Ese
{
    
    private $conn;
    private $tabel = "esemed_saal";
    
    public $id;
    public $nimi;
    public $kataloogi_id;
    public $kirjeldus;
    public $alghind;
    public $eelpakkumised;
    
    public function __construct($db)
    {
        $this->conn = $db;
    }
    
    function lisamine()
    {
        // Eseme lisamine andmebaasi
        $query = "INSERT INTO " . $this->tabel . " SET nimi= ?, kirjeldus= ?, kataloogi_id= ?, alghind= ?";
        
        $stmt = $this->conn->prepare($query);
        
        $this->nimi         = htmlspecialchars(strip_tags($this->nimi));
        $this->kirjeldus    = htmlspecialchars(strip_tags($this->kirjeldus));
        $this->kataloogi_id = htmlspecialchars(strip_tags($this->kataloogi_id));
        $this->alghind      = htmlspecialchars(strip_tags($this->alghind));
        
        $stmt->bindParam(1, $this->nimi);
        $stmt->bindParam(2, $this->kirjeldus);
        $stmt->bindParam(3, $this->kataloogi_id);
        $stmt->bindParam(4, $this->alghind);
        
        if ($stmt->execute()) {
            return true;
        } else {
            return false;
        }
    }
    
    function loeKataloogist()
    {
        // Esemete lugemine kataloogi ID järgi
        $query = "SELECT id, nimi, kirjeldus, alghind, eelpakkumised FROM " . $this->tabel . " WHERE kataloogi_id= ?";
        
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(1, $this->kataloogi_id);
        $stmt->execute();
        
        return $stmt;
    }
    
    
    function readOne()
    {
        // Loeme andmebaasist ühe eseme info ID järgi, salvestame klassimuutujatesse.
        $query = "SELECT nimi, kirjeldus, alghind, eelpakkumised, kataloogi_id 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->kirjeldus     = $row['kirjeldus'];
        $this->alghind       = $row['alghind'];
        $this->eelpakkumised = $row['eelpakkumised'];
        $this->kataloogi_id  = $row['kataloogi_id'];
        
    }
    
    function showOne($id)
    {
        // Kuvame ühe saalioksjoni eseme detailid ID järgi
        $query = "SELECT nimi, kirjeldus, kataloogi_id, alghind FROM " . $this->tabel . " WHERE id = $id";
        $stmt  = $this->conn->prepare($query);
        $stmt->execute();
        
        return $stmt;
        
    }
    
    function update()
    {
        // Saalioksjoni eseme uuendamine andmebaasis
        $query = "UPDATE " . $this->tabel . " SET nimi = :nimi, kirjeldus = :kirjeldus WHERE id = :id";
        
        $stmt = $this->conn->prepare($query);
        
        $this->nimi      = htmlspecialchars(strip_tags($this->nimi));
        $this->kirjeldus = htmlspecialchars(strip_tags($this->kirjeldus));
        $this->id        = htmlspecialchars(strip_tags($this->id));
        
        $stmt->bindParam(':nimi', $this->nimi);
        $stmt->bindParam(':kirjeldus', $this->kirjeldus);
        $stmt->bindParam(':id', $this->id);
        
        if ($stmt->execute()) {
            return true;
        } else {
            return false;
        }
    }
    
    function delete()
    {
        // Saalioksjoni eseme kustutamine andmebaasist ID järgi
        $query = "DELETE FROM " . $this->tabel . " WHERE id = ?";
        
        $stmt = $this->conn->prepare($query);
        $stmt->bindParam(1, $this->id);
        
        if ($result = $stmt->execute()) {
            return true;
        } else {
            return false;
        }
    }

}