using Model; namespace Services; /// /// Represents a service for managing users. /// public interface IUserService { /// /// Retrieves the count of users whose names contain the specified needle. /// Task UsersCount(string nameNeedle); /// /// Retrieves the total count of users. /// Task UsersCount(); /// /// Lists a range of users, optionally filtering by name. /// Task> ListUsers(int start, int count, string? nameNeedle = null); /// /// Retrieves the user with the specified ID. /// Task GetUser(int id); /// /// Retrieves the user with the specified email. /// Task GetUser(string email); /// /// Creates a new user. /// Task CreateUser(string username, string email, string password, string profilePicture, bool isAdmin); /// /// Removes one or more users. /// Task RemoveUsers(params int[] identifiers); /// /// Updates an existing user. /// Task UpdateUser(User user, string? password = null); public Task> GetSharedTacticsToUser(int userId); /// /// Authorizes a user with the specified email and password. /// Task Authorize(string email, string password); }