using Microsoft.AspNetCore.Identity;
using PnvPanel.Application.Common.Models;
namespace PnvPanel.Infrastructure.Identity;
/// Роль с лимитом одновременных IP на клиента, доступом к инбаундам и флагом биллинга.
/// Квота конфигов больше не на роли — см. AppUser.ConfigQuota/Plan. У пользователя ровно одна роль.
public class AppRole : IdentityRole
{
public const int UnlimitedMaxIpLimit = RoleQuota.Unlimited;
/// Лимит одновременных IP на клиента в 3x-ui (`limitIp`); -1 — без лимита. Применяется
/// только к новым клиентам, создаваемым в 3x-ui (см. IXuiPanelGateway.AddClientAsync) — при смене
/// роли/лимита существующие клиенты в панели не трогаются (как и квота ConfigQuota).
public int MaxIpLimit { get; set; }
public bool IsSystem { get; set; }
/// Включает биллинг для пользователей с этой ролью (недоступно для роли admin — см.
/// RoleService.UpdateRoleAsync).
public bool BillingEnabled { get; set; }
public AppRole() { }
public AppRole(string name)
: base(name) { }
}