package com.datarecovery.master.data.api;


import com.atmob.app.lib.base.BaseResponse;
import com.datarecovery.master.data.api.request.BaseRequest;
import com.datarecovery.master.data.api.request.CustomerUrlRequest;
import com.datarecovery.master.data.api.request.FindOrderRequest;
import com.datarecovery.master.data.api.request.LoginRequest;
import com.datarecovery.master.data.api.request.MemberDetailRequest;
import com.datarecovery.master.data.api.request.MemberPayRequest;
import com.datarecovery.master.data.api.request.OrderPageRequest;
import com.datarecovery.master.data.api.request.OrderRequest;
import com.datarecovery.master.data.api.request.PaymentStatusRequest;
import com.datarecovery.master.data.api.request.QuickLoginRequest;
import com.datarecovery.master.data.api.request.SendCodeRequest;
import com.datarecovery.master.data.api.response.CustomerUrlResponse;
import com.datarecovery.master.data.api.response.FindOrderResponse;
import com.datarecovery.master.data.api.response.FuncAuthsResponse;
import com.datarecovery.master.data.api.response.LoginResponse;
import com.datarecovery.master.data.api.response.MemberDetailResponse;
import com.datarecovery.master.data.api.response.MemberPayResponse;
import com.datarecovery.master.data.api.response.OrderPageResponse;
import com.datarecovery.master.data.api.response.PaymentStatusResponse;
import com.datarecovery.master.data.api.response.UserCaseResponse;
import com.datarecovery.master.data.api.response.UserInfoResponse;

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

public interface AtmobApi {


    @POST("/project/recover/v1/user/code")
    Single<BaseResponse<Object>> loginSendCode(@Body SendCodeRequest request);

    @POST("/project/recover/v1/user/login")
    Single<BaseResponse<LoginResponse>> loginUserLogin(@Body LoginRequest request);

    @POST("/project/recover/v1/user/logout")
    Single<BaseResponse<Object>> userLogout(@Body BaseRequest request);

    @POST("/project/recover/v2/order/page")
    Single<BaseResponse<OrderPageResponse>> orderPage(@Body OrderPageRequest request);

    @POST("/project/recover/v1/func/auths")
    Single<BaseResponse<FuncAuthsResponse>> funcAuths(@Body BaseRequest request);

    @POST("/project/recover/v1/item/list")
    Single<BaseResponse<MemberDetailResponse>> memberDetail(@Body MemberDetailRequest request);

    @POST("/project/recover/v1/order/pay")
    Single<BaseResponse<MemberPayResponse>> requestPayOrder(@Body MemberPayRequest request);

    @POST("/project/recover/v1/order/status")
    Single<BaseResponse<PaymentStatusResponse>> getPayStatus(@Body PaymentStatusRequest request);

    @POST("/project/recover/v1/order/find")
    Single<BaseResponse<FindOrderResponse>> findOrder(@Body FindOrderRequest request);

    @POST("/project/recover/v1/order/cancel")
    Single<BaseResponse<Object>> cancelOrder(@Body OrderRequest request);

    @POST("/project/recover/v1/user/case/list")
    Single<BaseResponse<UserCaseResponse>> userCaseList(@Body BaseRequest request);

    @POST("/project/customer/v1/customer/getUrl")
    Single<BaseResponse<CustomerUrlResponse>> getCustomerUrl(@Body CustomerUrlRequest request);

    @POST("/project/recover/v1/user/info")
    Single<BaseResponse<UserInfoResponse>> getUserInfo(@Body BaseRequest request);

    @POST("/central/open/v1/user/login/oneclick")
    Single<BaseResponse<LoginResponse>> quickLogin(@Body QuickLoginRequest request);

    @POST("/project/recover/v1/user/deprecate")
    Single<BaseResponse<Object>> userDeprecate(@Body BaseRequest request);
}
