using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;

namespace WIDESEAWCS_Core.HttpContextUser
{
    public interface IUser
    {
        /// <summary>
        /// 名称
        /// </summary>
        string UserName { get; }

        /// <summary>
        /// UserId
        /// </summary>
        int UserId { get; }

        /// <summary>
        /// 租户ID
        /// </summary>
        long TenantId { get; }

        int RoleId { get; }

        string Token { get; }

        int MenuType { get; }

        void UpdateToke(string token);

        /// <summary>
        /// 是否认证
        /// </summary>
        /// <returns></returns>
        bool IsAuthenticated();

        IEnumerable<Claim> GetClaimsIdentity();

        List<string> GetClaimValueByType(string ClaimType);

        string GetToken();

        List<string> GetUserInfoFromToken(string ClaimType);

        bool IsSuperAdmin { get; }

        bool IsRoleIdSuperAdmin(int roleId);
    }
}