using VoidCat.Model; namespace VoidCat.Services.Abstractions; /// /// User store /// public interface IUserStore : IPublicPrivateStore { /// /// Get a single user /// /// /// /// ValueTask Get(Guid id) where T : VoidUser; /// /// Lookup a user by their email address /// /// /// ValueTask LookupUser(string email); /// /// List all users in the system /// /// /// ValueTask> ListUsers(PagedRequest request); /// /// Update a users profile /// /// /// ValueTask UpdateProfile(PublicVoidUser newUser); /// /// Updates the last login timestamp for the user /// /// /// /// ValueTask UpdateLastLogin(Guid id, DateTime timestamp); /// /// Update user account for admin /// /// /// ValueTask AdminUpdateUser(PrivateVoidUser user); }