using TakeoutSaaS.Domain.Identity.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;

namespace TakeoutSaaS.Domain.Identity.Entities;

/// <summary>
/// 角色定义。
/// </summary>
public sealed class Role : AuditableEntityBase
{
    /// <summary>
    /// 角色所属 Portal。
    /// </summary>
    public PortalType Portal { get; set; }

    /// <summary>
    /// 所属租户 ID（Portal=Tenant 时必填；Portal=Admin 时必须为空）。
    /// </summary>
    public long? TenantId { get; set; }

    /// <summary>
    /// 角色名称。
    /// </summary>
    public string Name { get; set; } = string.Empty;

    /// <summary>
    /// 角色编码（租户内唯一）。
    /// </summary>
    public string Code { get; set; } = string.Empty;

    /// <summary>
    /// 描述。
    /// </summary>
    public string? Description { get; set; }
}
