using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Ewide.Core
{
    public interface IUserManager
    {
        string Account { get; }
        string Name { get; }
        bool SuperAdmin { get; }
        SysUser User { get; }
        string UserId { get; }

        Task<SysUser> CheckUserAsync(string userId);
        Task<SysUser> CheckUserAsync();
        Task<SysEmp> GetUserEmpInfo(string userId);
        Task<SysEmp> GetUserEmpInfo();
        Task<SysOrg> GetUserOrgInfo(string userId);
        Task<SysOrg> GetUserOrgInfo();
        Task<List<string>> GetUserRoleIdList(string userId);
        Task<List<string>> GetUserRoleIdList();
        Task<List<SysRole>> GetUserRoleList(string userId);
        Task<List<SysRole>> GetUserRoleList();
        Task<List<string>> GetLoginPermissionList();
        //获取用户额外授权的组织信息
        Task<List<string>> GetUserExtraDataScopeList();
        Task<List<string>> GetUserExtraDataScopeList(string userId);
        //获取用户额外授权的区域信息
        Task<List<string>> GetUserExtraAreaScopeList();
        Task<List<string>> GetUserExtraAreaScopeList(string userId);
        //获取角色额外授权的组织信息
        Task<List<string>> GetRoleExtraDataScopeList(string roleId);
        //获取角色额外授权的区域信息
        Task<List<string>> GetRoleExtraAreaScopeList(string roleId);
        Task<List<string>> GetUserAllAreaList();
        Task<List<string>> GetUserAllAreaList(string userId);

        //获取用户的授权范围
        Task<List<string>> GetUserAllDataScopeList();
        Task<List<string>> GetUserAllDataScopeList(string userId);

    }
}