namespace Knot.Shared.Kernel;

public record UserInfo(Guid Id, string Username, string DisplayName, string? Avatar);

public interface IUserDisplayNameProvider
{
    Task<string> GetDisplayNameAsync(Guid userId, CancellationToken ct = default);
    Task<UserInfo?> GetUserInfoAsync(Guid userId, CancellationToken ct = default);
    Task<IReadOnlyDictionary<Guid, UserInfo>> GetUsersInfoAsync(IEnumerable<Guid> userIds, CancellationToken ct = default);
}
