<?php

namespace Models;

use Bases\Model;

class Categorie extends Model
{

    protected $table = "categories";

    /**
     * Retournne toutes les catégories
     *
     * @return array|false
     */
    public function toutesCategories()
    {
        $sql = "SELECT $this->table.*
                FROM $this->table ";

        $requete = $this->pdo()->prepare($sql);

        $requete->execute();

        return $requete->fetchAll();
    }

    /**
     * Retourne un compte en fonction de son id
     *
     * @param int $id
     * @return object|false
     */
    public function categorieParId($id)
    {

        $sql = "SELECT $this->table.*
                FROM $this->table
                WHERE $this->table.id = :id";

        $requete = $this->pdo()->prepare($sql);

        $requete->execute([
            ":id" => $id,
        ]);

        return $requete->fetch();
    }

    /**
     * Insère une nouvelle catégorie
     *
     * @param string $nom
     * 
     * @return void
     */
    public function inserer(string $nom)
    {
        $sql = "INSERT INTO $this->table (nom)
                VALUES (:nom)";

        $requete = $this->pdo()->prepare($sql);

        return $requete->execute([
            ":nom" => $nom
        ]);
    }

    /**
     * Modifie une catégorie
     *
     * @param string $nom
     * 
     * @return void
     */
    public function modifier(int $id, string $nom)
    {
        $sql = "UPDATE $this->table 
                SET nom = :nom
                WHERE $this->table.id = $id";

        $requete = $this->pdo()->prepare($sql);

        return $requete->execute([
            ":nom" => $nom
        ]);
    }

    /**
     * Supprime une catégorie
     *
     * @param int $id
     * @return bool
     */
    function supprimer($id)
    {

        $sql = "DELETE FROM $this->table 
                WHERE id = :id";

        $requete = $this->pdo()->prepare($sql);

        return $requete->execute([
            ":id" => $id
        ]);
    }
}
