package com.ttstd.controller.network;

import com.ttstd.controller.network.model.LoginRequest;
import com.ttstd.controller.network.model.RefreshRequest;
import com.ttstd.controller.network.model.TokenResponse;

import io.reactivex.rxjava3.core.Single;
import retrofit2.http.Body;
import retrofit2.http.POST;

/**
 * 用户端认证接口，对应服务端 {@code /api/auth}（用户端，非设备端 {@code /api/device}）。
 */
public interface AuthApi {

    /** 用户名密码登录，成功后下发 access / refresh 双令牌。 */
    @POST("api/auth/login")
    Single<TokenResponse> login(@Body LoginRequest request);

    /** 使用 refreshToken 换取新的 access 令牌。 */
    @POST("api/auth/refresh")
    Single<TokenResponse> refresh(@Body RefreshRequest request);
}
