using BookmarkApi.Shared.DTOs.Auth;

namespace BookmarkApi.Core.Interfaces;

/// <summary>
/// 认证服务接口
/// </summary>
public interface IAuthService
{
    /// <summary>
    /// 用户注册
    /// </summary>
    Task<AuthResponse> RegisterAsync(RegisterRequest request);

    /// <summary>
    /// 用户登录
    /// </summary>
    Task<AuthResponse> LoginAsync(LoginRequest request);

    /// <summary>
    /// 退出登录
    /// </summary>
    Task<bool> LogoutAsync(Guid userId, Guid deviceId);

    /// <summary>
    /// 刷新令牌
    /// </summary>
    Task<AuthResponse> RefreshTokenAsync(string refreshToken);

    /// <summary>
    /// 验证访问令牌
    /// </summary>
    Task<bool> ValidateTokenAsync(string token);
}

