using OpenWarehouse.warehouse.api.Services;

namespace OpenWarehouse.warehouse.api.Common.ItemTagManager;

public interface IItemTagManager
{
    public Task<bool> CreateTag(string name, Guid? parentId);
    public Task<ItemCategoryTag?> GetTagByName(string name);
    public Task<ItemCategoryTag?> GetTagById(Guid id);
    public Task<ItemCategoryTag?> GetTagById(string id);
    public Task<bool> DeleteTag(ItemCategoryTag tag);
    public Task<bool> DeleteTag(Guid id);
    public Task<int> DeleteTagsByNames(List<Model.Item.ItemCategoryTag> names);
    public Task<bool> DeleteTag(String id);
    public Task<int> CreateTagTree(List<Model.Item.ItemCategoryTag> itemCategoryTags);
    public Task<bool> DeleteAllChild(Guid id);
    public Task<bool> DeleteAllChild(String id);
    public Task<ItemCategoryTag?> GetTagTree(string root);
    public Task<List<ItemCategoryTag>> GetFullTagTree();
}