package com.lesingle.creation.service;

import com.lesingle.creation.dto.auth.LoginDTO;
import com.lesingle.creation.vo.auth.LoginResponseVO;
import com.lesingle.creation.vo.auth.UserInfoVO;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     *
     * @param loginDTO 登录请求
     * @return 登录响应
     */
    LoginResponseVO login(LoginDTO loginDTO);

    /**
     * 获取用户信息
     *
     * @param userId 用户 ID
     * @return 用户信息
     */
    UserInfoVO getUserInfo(Long userId);

    /**
     * 用户登出
     *
     * @param userId 用户 ID
     */
    void logout(Long userId);

    /**
     * 刷新 Token
     *
     * @param token 旧的 Token（去掉 Bearer 前缀）
     * @return 新的登录响应
     */
    LoginResponseVO refreshToken(String token);
}
