using PnvPanel.Application.Common.Models; namespace PnvPanel.Application.Common.Interfaces; public sealed record RoleDto(Guid Id, string Name, int MaxConfigs, int MaxIpLimit, bool IsSystem); public interface IRoleService { Task> CreateRoleAsync(string name, int maxConfigs, int maxIpLimit, CancellationToken cancellationToken); Task> UpdateRoleAsync(Guid roleId, int maxConfigs, int maxIpLimit, CancellationToken cancellationToken); Task DeleteRoleAsync(Guid roleId, CancellationToken cancellationToken); Task> ListRolesAsync(CancellationToken cancellationToken); Task ChangeUserRoleAsync(Guid userId, Guid roleId, CancellationToken cancellationToken); }