package com.app.rewardapp.restApi;

import com.app.rewardapp.Responsemodel.ConfigResp;
import com.app.rewardapp.Responsemodel.BannerResponse;
import com.app.rewardapp.Responsemodel.CallbackResp;
import com.app.rewardapp.Responsemodel.GameResponse;
import com.app.rewardapp.Responsemodel.HistoryResp;
import com.app.rewardapp.Responsemodel.LeaderboardResp;
import com.app.rewardapp.Responsemodel.LoginResponse;
import com.app.rewardapp.Responsemodel.OfferResponse;
import com.app.rewardapp.Responsemodel.RedeemResponse;
import com.app.rewardapp.Responsemodel.TaskResp;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface ApiInterface {

    @GET(WebApi.Api.ABOUTS)
    Call<ConfigResp> getConfig();

    @GET(WebApi.Api.Offers)
    Call<OfferResponse> getOffers();

    @GET(WebApi.Api.SLIDE_BANNER)
    Call<BannerResponse> SLideBanner();

    @GET(WebApi.Api.GAMES)
    Call<GameResponse> getGame();

    @POST(WebApi.Api.VERIFY_OTP)
    Call<CallbackResp> Verify_OTP(@Query("otp") String otp,
                              @Query("email") String email);

    @POST(WebApi.Api.RESET_PASSWORD)
    Call<CallbackResp> ResetPass(@Query("email") String email);

    @POST(WebApi.Api.UPDATE_PASSWORD)
    Call<CallbackResp> UpdatePass(@Query("email") String email,
                                   @Query("password") String password,
                                   @Query("otp") String otp);


    @GET(WebApi.Api.REWARDS)
    Call<RedeemResponse> getRedeem();

    @GET(WebApi.Api.LEADERBOARD)
    Call<List<LeaderboardResp>> getLeaderboard();

    @GET(WebApi.Api.CREDIT_GAME)
    Call<CallbackResp> GameReward();

    @FormUrlEncoded
    @POST("api/v1/datas")
    Call<List<HistoryResp>> ApiTransaction(@Field("data") String data);

    @FormUrlEncoded
    @POST("api/v1/datas")
    Call<List<TaskResp>> ApiTask(@Field("data") String data);

    @FormUrlEncoded
    @POST("api/v1/datas")
    Call<CallbackResp> Api(@Field("data") String body);

    @FormUrlEncoded
    @POST("api/v1/user")
    Call<CallbackResp> ApiUser(@Field("data") String body);



}
