#ifndef ITEM_FILTER_BY_NAME_HPP_
#define ITEM_FILTER_BY_NAME_HPP_

#include <ItemFilter/ItemFilter.hpp>
#include <string>

/**
 * @brief An item filter that takes a name and performs a case-insensitive comparison.
 */
class ItemFilterByName : public ItemFilter
{
private:
    std::string normalizedQuery;

public:
    ItemFilterByName(std::string query = "");

    /**
     * @brief Set the query, in a case-insensitive way.
     */
    void setQuery(std::string query);

    virtual bool matches(ItemStack &stack) override;
};

#endif