<?php

namespace Models;

use Bases\Model;

class Categorie extends Model
{
    protected $table = 'categories';

    /**
     * Ajoute une nouvelle catégorie
     *
     * @param string $nom
     * @return bool
     */
    public function ajouter($nom)
    {
        // Créer la requête
        $sql = "INSERT INTO $this->table (nom) VALUE (:nom) ";

        // Préparer la requête
        $requete = $this->pdo()->prepare($sql);

        // Exécuter la requête (associer valeur à placeholder)
        return $requete->execute([
            ":nom" => $nom,
        ]);       
    }
     
    /**
     * Met à jour une categorie existante selon l'id
     *
     * @param int $id
     * @param string $nom
     * @return bool
     */
    public function modifier($id, $nom)
    {
        // Créer la requête
        $sql = "UPDATE $this->table SET nom=:nom WHERE id=:id";

        // Préparer la requête
        $requete = $this->pdo()->prepare($sql);

        // Exécuter la requête (associer valeur à placeholder)
        return $requete->execute([
            ":id" => $id,
            ":nom" => $nom
        ]);
    }

    /**
     * Supprime une catégorie de la base de données
     *
     * @param int $id
     * @return bool
     */
    public function supprimer($id)
    {
        // Créer la requête
        $sql = "DELETE FROM $this->table WHERE id=:id";

        // Préparer la requête
        $requete = $this->pdo()->prepare($sql);

        // Exécuter la requête (associer valeur à placeholder
        return $requete->execute([
            ":id" => $id
        ]);
    }

    /**
     * Retourne toute les categories
     *
     * @return array|false 
     */
    public function toutesCategories()
    {
        // Créer la requête
        $sql = "SELECT * FROM $this->table";

        // Préparer la requête
        $requete = $this->pdo()->prepare($sql);

        // Exécuter la requête
        $requete->execute();
        return $requete->fetchAll();
    }
}
