using System.Security.Claims;
using Tiobon.Core.Model;

namespace Tiobon.Core.Common.HttpContextUser;

public interface IUser
{
    string Name { get; }
    int ID { get; }
    long TenantId { get; }
    bool IsAuthenticated();
    int StaffId { get; }

    string StaffName { get; }

    string StaffNo { get; }

    IEnumerable<Claim> GetClaimsIdentity();
    List<string> GetClaimValueByType(string ClaimType);

    string GetToken();
    List<string> GetUserInfoFromToken(string ClaimType, string token);

    ServiceResult<string> MessageModel { get; set; }
    int? GetLangId();
}