/**
  * @param array $category
  * @return Category
  * @throws \InvalidArgumentException
  */
 public static function create(array $category)
 {
     if (empty($category["_id"])) {
         throw new \InvalidArgumentException("The id is required");
     }
     if (empty($category["_value"])) {
         throw new \InvalidArgumentException("The value is required");
     }
     if (!is_int($category["_remain"])) {
         throw new \InvalidArgumentException("The remain must be a number");
     }
     $newCategory = new Category();
     $newCategory->setId($category["_id"]);
     $newCategory->setValue($category["_value"]);
     $newCategory->setRemain($category["_remain"]);
     return $newCategory;
 }