using BookmarkApi.Shared.DTOs;

namespace BookmarkApi.Core.Interfaces;

/// <summary>
/// 标签服务接口
/// </summary>
public interface ITagService
{
    /// <summary>
    /// 获取用户的所有标签及使用数量
    /// </summary>
    Task<List<TagDto>> GetUserTagsAsync(Guid userId, Guid deviceId, bool isAdminDevice);

    /// <summary>
    /// 重命名标签
    /// </summary>
    Task<bool> RenameTagAsync(Guid userId, string oldName, string newName);

    /// <summary>
    /// 删除标签（从所有书签中移除该标签）
    /// </summary>
    Task<int> DeleteTagAsync(Guid userId, string tagName);

    /// <summary>
    /// 合并标签
    /// </summary>
    Task<int> MergeTagsAsync(Guid userId, string[] sourceNames, string targetName);
}

