using System; using System.Threading.Tasks; using CleanArchitecture.Application.ViewModels; using CleanArchitecture.Application.ViewModels.Sorting; using CleanArchitecture.Application.ViewModels.Users; namespace CleanArchitecture.Application.Interfaces; public interface IUserService { public Task GetUserByUserIdAsync(Guid userId); public Task GetCurrentUserAsync(); public Task> GetAllUsersAsync( PageQuery query, bool includeDeleted, string searchTerm = "", SortQuery? sortQuery = null); public Task CreateUserAsync(CreateUserViewModel user); public Task UpdateUserAsync(UpdateUserViewModel user); public Task DeleteUserAsync(Guid userId); public Task ChangePasswordAsync(ChangePasswordViewModel viewModel); public Task LoginUserAsync(LoginUserViewModel viewModel); }