// *********************************************************************** // // AgileWebs // // *********************************************************************** using Core.Thalos.BuildingBlocks; using Core.Thalos.Domain.Contexts.Onboarding.Request; namespace Core.Thalos.Provider.Contracts { /// /// Interface for User-related service operations. /// public interface IUserProvider { /// /// Creates a new User. /// /// The User to be created. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask CreateUser(UserRequest newUser, CancellationToken cancellationToken); /// /// Gets a User by Mongo identifier. /// /// The User Mongo identifier. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask GetUserById(string _id, CancellationToken cancellationToken); /// /// Gets all Users. /// /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask> GetAllUsers(CancellationToken cancellationToken); /// /// Gets a User by email. /// /// The User's email. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask GetUserByEmail(string email, CancellationToken cancellationToken); /// /// Validates if a User exists by email. /// /// The User's email. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask ValidateUserExistence(string email, CancellationToken cancellationToken); /// /// Changes the status of a User. /// /// The User Mongo identifier. /// The new status of the User. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask ChangeUserStatus(string _id, Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken); /// /// Updates a User. /// /// The User to be updated. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask UpdateUser(UserAdapter entity, CancellationToken cancellationToken); /// /// Logs in the User. /// /// The User's email. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask LogInUser(string email, CancellationToken cancellationToken); /// /// Logs out the User's session. /// /// The User's email. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask LogOutUserSession(string email, CancellationToken cancellationToken); /// /// Gets the TokenAdapter for a User. /// /// The User's email. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask GetToken(string email, CancellationToken cancellationToken); /// /// Deletes a User by Mongo identifier. /// /// The User Mongo identifier. /// A token to cancel the asynchronous operation. /// /// A representing the asynchronous execution of the service. /// ValueTask DeleteUser(string _id, CancellationToken cancellationToken); } }