package com.sambath.sbc.remote.service

import com.sambath.sbc.remote.*
import io.reactivex.Single
import retrofit2.http.*

interface ApiService {

    @POST("/v1/api/user/login")
    @Headers("No-Authentication: true")
    fun login(@Body loginRequest: LoginRequest): Single<LoginResponse>

//    @POST("/v1/api/user/register")
//    fun createBetting(@Body register: Register): Single<RegisterResponse>

    @POST("/v1/api/user/changepassword")
    fun changePassword(@Body changePwd: ChangePwd): Single<ChangePwdResponse>

//    @GET("/v1/api/user")
//    fun getUserInfo(): Single<UserInfoResponse>
//
//    @PUT("/v1/api/user")
//    fun updateUserInfo(@Body updateUser: UpdateUser): Single<UpdateResponse>

    @GET("/v1/api/channel")
    fun getChannel(): Single<ChannelResponse>

    @GET("/v1/api/user")
    fun getUser(): Single<UserResponse>

    @GET("/v1/api/weight")
    fun getWeight(): Single<WeightResponse>

    @GET("/v1/api/type")
    fun getBettingType(): Single<BettingTypeResponse>

    @GET("/v1/api/result")
    fun getResult(): Single<ResultsResponse>

    @POST("/v1/api/betting")
    fun createBetting(@Body createBetting: CreateBetting): Single<BettingResponse>

    @GET("/v1/api/betting/current")
    fun getCurrentBetting(): Single<CurrentResponse>

    @GET("/v1/api/betting/today")
    fun getTodayReport(): Single<TodayResponse>

    @GET("/v1/api/button")
    fun getButton(): Single<ButtonResponse>

    @POST("/v1/api/report/deposit")
    fun getReportDeposit(@Body reportBetting: ReportBody): Single<ReportDepositResponse>

    @POST("/v1/api/report/withdraw")
    fun getReportWithdraw(@Body reportBetting: ReportBody): Single<ReportWithdrawResponse>

    @POST("/v1/api/report/betting")
    fun getReportOne(@Body reportBetting: ReportBody): Single<ReportOneResponse>

    @POST("/v1/api/result/filter")
    fun getReportTwo(@Body reportBetting: ReportBody): Single<ReportTwoResponse>

    @GET("/v1/api/report")
    fun getReportThree(): Single<ReportThreeResponse>
}