<?php
	require_once('mother_model.php');
	
	/**
	* Traitement des requêtes pour les catégories
	* @author : Laura
	*/

	class CategoryModel extends Connect{

		/**
		* Fonction de récupération des catégories
		* @param int $intLimit
        * @return array
        */

        public function findAllCategory(int $intLimit=0):array{
			
			$strRq	= "SELECT category.* 
						FROM category";
			
			if ($intLimit > 0){
				$strRq  .= " LIMIT ".$intLimit;
			}

			return $this->_db->query($strRq)->fetchAll();
		}

		/**
		* fonction d'insertion d'une nouvelle catégorie dans la bdd
        * @param object $objCategory l'objet catégorie
		* @return bool Est-ce que la requête s'est bien passée
        */
		public function insertCategory(object $objCategory):bool{

		$strRq = "INSERT INTO category (category_name)
					VALUES (:name)";

		$rqPrep	= $this->_db->prepare($strRq);

		$rqPrep->bindValue(":name", $objCategory->getName(), PDO::PARAM_STR);

		return $rqPrep->execute();

		}

		/**
		* fonction de suppression d'une catégorie dans la bdd
        * @param object $objCategory l'objet catégorie
		* @return bool Est-ce que la requête s'est bien passée
        */
		public function deleteCategory(object $objCategory):bool{
		
			$strRq = "DELETE FROM category 
					WHERE category_id= :id";

			$rqPrep	= $this->_db->prepare($strRq);
			
			$rqPrep->bindValue(":id", $objCategory->getId(), PDO::PARAM_INT);
			
			return $rqPrep->execute();
		}

		/**
		* fonction de modification d'une catégorie dans la bdd
        * @param object $objCategory l'objet catégorie
		* @return bool Est-ce que la requête s'est bien passée
        */
		public function editCategory(object $objCategory):bool{

			$strRq = "UPDATE category 
						SET category_name = :name
						WHERE category_id = :id";

			$rqPrep	= $this->_db->prepare($strRq);
			
			$rqPrep->bindValue(":id", $objCategory->getId(), PDO::PARAM_INT);
			$rqPrep->bindValue(":name", $objCategory->getName(), PDO::PARAM_STR);

			return $rqPrep->execute();
		}
    }
    