package com.erp.user.service.auth;

import com.erp.user.dto.auth.*;
import com.erp.user.entity.auth.AuthToken;
import com.erp.user.entity.auth.LoginDevice;

import java.util.List;

/**
 * 认证服务接口
 */
public interface AuthService {
    
    /**
     * 账号密码登录
     */
    AuthResponse login(LoginRequest request, String ip, String userAgent);
    
    /**
     * 注册
     */
    AuthResponse register(RegisterRequest request, String ip, String userAgent);
    
    /**
     * 登出
     */
    void logout(String token);
    
    /**
     * 刷新Token
     */
    AuthResponse refresh(String refreshToken);
    
    /**
     * 短信登录
     */
    AuthResponse smsLogin(SmsLoginRequest request, String ip, String userAgent);
    
    /**
     * 获取当前用户设备列表
     */
    List<LoginDevice> getUserDevices(Long userId);
    
    /**
     * 登出所有设备
     */
    void logoutAllDevices(Long userId);
    
    /**
     * 获取当前认证信息
     */
    AuthToken getCurrentAuth(String token);
}
