using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Security;
using Nop.Web.Areas.Admin.Models.Security;
namespace Nop.Web.Areas.Admin.Factories;
///
/// Represents the security model factory
///
public partial interface ISecurityModelFactory
{
///
/// Prepare permission configuration model
///
/// Permission configuration model
///
/// A task that represents the asynchronous operation
/// The task result contains the permission configuration model
///
Task PreparePermissionConfigurationModelAsync(PermissionConfigurationModel model);
///
/// Prepare permission item model
///
/// Permission record
/// All available customer roles
///
/// A task that represents the asynchronous operation
/// The task result contains the permission item model
///
Task PreparePermissionItemModelAsync(PermissionRecord permissionRecord, IList availableRoles = null);
///
/// Prepare permission category list model
///
/// permission category search model
///
/// A task that represents the asynchronous operation
/// The task result contains the permission category list model
///
Task PreparePermissionCategoryListModelAsync(PermissionCategorySearchModel searchModel);
///
/// Prepare paged permission item list model
///
/// Permission item search model
///
/// A task that represents the asynchronous operation
/// The task result contains the permission item list model
///
Task PreparePermissionItemListModelAsync(PermissionItemSearchModel searchModel);
}