Files
Core.Thalos.DAL.API/Core.Thalos.Provider/Contracts/IModuleService.cs
Sergio Matias Urquin 24efe5612c reeplace cerberos by talos
2025-05-18 19:11:08 -06:00

65 lines
2.8 KiB
C#

// ***********************************************************************
// <copyright file="IModuleService.cs">
// AgileWebs
// </copyright>
// ***********************************************************************
using Core.Thalos.Adapters;
using Core.Thalos.Adapters.Common.Enums;
using Core.Thalos.Domain.Contexts.Onboarding.Request;
namespace Core.Thalos.Provider.Contracts
{
public interface IModuleService
{
/// <summary>
/// Creates a new Module.
/// </summary>
/// <param name="entity">The Module to be created.</param>
/// <returns>A <see cref="{Task{ModuleAdapter}}"/> representing
/// the asynchronous execution of the service.</returns>
Task<ModuleAdapter> CreateModuleService(ModuleRequest newModule);
/// <summary>
/// Gets an Module by identifier.
/// </summary>
/// <param name="id">The Module identifier.</param>
/// <returns>A <see cref="{Task{ModuleAdapter}}"/> representing
/// the asynchronous execution of the service.</returns>
Task<ModuleAdapter> GetModuleByIdService(string id);
/// <summary>
/// Gets all the roles.
/// </summary>
/// <returns>A <see cref="{Task{IEnumerbale{ModuleAdapter}}}"/> representing
/// the asynchronous execution of the service.</returns>
Task<IEnumerable<ModuleAdapter>> GetAllModulesService();
/// <summary>
/// Gets all the permissions by permissions identifier list.
/// </summary>
/// <param name="permissions">The list of permissions identifiers.</param>
/// <returns>A <see cref="Task{IEnumerable{ModuleAdapter}}"/> representing
/// the asynchronous execution of the service.</returns>
Task<IEnumerable<ModuleAdapter>> GetAllModulesByListService(string[] permissions);
/// <summary>
/// Changes the status of the permission.
/// </summary>
/// <param name="id">The permission identifier.</param>
/// <param name="newStatus">The new status of the permission.</param>
/// <returns>The <see cref="ModuleAdapter"/> updated entity.</returns>
/// <returns>A <see cref="{Task{ModuleAdapter}}"/> representing
/// the asynchronous execution of the service.</returns>
Task<ModuleAdapter> ChangeModuleStatusService(string id, StatusEnum newStatus);
/// <summary>
/// Updates a Module by id.
/// </summary>
/// <param name="entity">The Module to be updated.</param>
/// <param name="id">The Module identifier.</param>
/// <returns>A <see cref="{Task{ModuleAdapter}}"/> representing
/// the asynchronous execution of the service.</returns>
Task<ModuleAdapter> UpdateModuleService(ModuleAdapter entity, string id);
}
}