using System.Security.Claims;
using System.Threading.Tasks;
using iyixiGames.Infrastructure.Data; // 假设你的User在Infrastructure项目
using iyixiGames.Domain.Entities; // 你的User实体定义

namespace iyixiGames.Infrastructure.Services
{
    public interface IAuthService
    {
        /// <summary>
        /// 验证用户凭据。
        /// </summary>
        /// <param name="username">用户名。</param>
        /// <param name="password">明文密码。</param>
        /// <returns>如果认证成功，返回用户的ClaimsPrincipal；否则返回null。</returns>
        Task<ClaimsPrincipal?> AuthenticateUserAsync(string username, string password);

        /// <summary>
        /// 更新用户的最后登录时间。
        /// </summary>
        Task UpdateLastLoginTimeAsync(int userId);
    }
}