package com.fs.wxcid.service;

import com.fs.wxcid.dto.common.ApiResponse;
import com.fs.wxcid.dto.login.LoginRequest;
import com.fs.wxcid.dto.login.QrCodeRequest;
import com.fs.wxcid.dto.login.SlideVerifyRequest;
import com.fs.wxcid.dto.login.VerifyCodeRequest;
/**
 * 微信登录服务接口
 * <p>封装所有 /login/* 接口，支持多种登录方式</p>
 */
public interface LoginService {

    // —————— 账号密码 / 62 / A16 登录 ——————
    ApiResponse a16Login(String authKey, LoginRequest request);
    ApiResponse deviceLogin(String authKey, LoginRequest request);

    // —————— 二维码登录（iPad / Mac / 车载） ——————
    ApiResponse getLoginQrCodeNew(String authKey, QrCodeRequest request);// iPad
    ApiResponse getLoginQrCodeNewDirect(String authKey, QrCodeRequest request); // 直登
    ApiResponse macLogin(String authKey, QrCodeRequest request);// Mac
    ApiResponse carLogin(String authKey, QrCodeRequest request);// iPad

    // ------------------ 状态检测 ------------------
    ApiResponse checkCanSetAlias(String authKey);// 检测是否可设昵称（判断登录环境）
    ApiResponse checkLoginStatus(String authKey);// 检测扫码是否完成
    ApiResponse getLoginStatus(String authKey);// 获取当前在线状态

    // —————— 数据管理 ——————
    ApiResponse get62Data(String authKey);            // 提取 62 数据（用于免密登录）

    // —————— 验证码与滑块 ——————
    ApiResponse verifyCode(String authKey, VerifyCodeRequest request);
    ApiResponse verifyCodeSlide(String authKey, SlideVerifyRequest request);

    // —————— 控制 ——————
    ApiResponse wakeUpLogin(String authKey, QrCodeRequest request); // 唤醒扫码登录
    ApiResponse logOut(String authKey);                // 退出登录
}