public function all($take, $skip, $category)
 {
     if ($category) {
         $showAllProducts = UserModel::isAdminUser($_SESSION['id']) ? "" : "AND p.quantity > 0";
         $result = $this->db->prepare("SELECT p.id, p.name, p.quantity FROM products p\n                                    INNER JOIN products_categories pc\n                                    ON p.id = pc.product_id\n                                    WHERE pc.category_id = (SELECT id FROM categories WHERE name = ?) {$showAllProducts}\n                                    LIMIT ? OFFSET ?");
         $result->execute([$category, $take, $skip]);
         return $this->prepareViewModel($result->fetchAll());
     } else {
         $showAllProducts = UserModel::isAdminUser($_SESSION['id']) ? "" : "WHERE quantity > 0";
         $result = $this->db->prepare("SELECT id, name, quantity, price FROM products {$showAllProducts} LIMIT ? OFFSET ?");
         $result->execute([$take, $skip]);
         return $this->prepareViewModel($result->fetchAll());
     }
 }