// ***********************************************************************
//
// Heath
//
// ***********************************************************************
using Core.Cerberos.Adapters;
using Core.Cerberos.Adapters.Common.Enums;
using Core.Cerberos.Domain.Contexts.Onboarding.Request;
namespace Core.Cerberos.Provider.Contracts
{
public interface IPermissionService
{
///
/// Creates a new Permission.
///
/// The Permission to be created.
/// A representing
/// the asynchronous execution of the service.
Task CreatePermissionService(PermissionRequest newPermission);
///
/// Gets an Permission by identifier.
///
/// The Permission identifier.
/// A representing
/// the asynchronous execution of the service.
Task GetPermissionByIdService(string id);
///
/// Gets all the roles.
///
/// A representing
/// the asynchronous execution of the service.
Task> GetAllPermissionsService();
///
/// Gets all the permissions by permissions identifier list.
///
/// The list of permissions identifiers.
/// A representing
/// the asynchronous execution of the service.
Task> GetAllPermissionsByListService(string[] permissions);
///
/// Changes the status of the permission.
///
/// The permission identifier.
/// The new status of the permission.
/// The updated entity.
/// A representing
/// the asynchronous execution of the service.
Task ChangePermissionStatusService(string id, StatusEnum newStatus);
///
/// Updates a Permission by id.
///
/// The Permission to be updated.
/// The Permission identifier.
/// A representing
/// the asynchronous execution of the service.
Task UpdatePermissionService(PermissionAdapter entity, string id);
}
}