package com.example.audiovisualrecord.utils.api;

import com.example.audiovisualrecord.utils.api.apidata.searchco.CORequest;
import com.example.audiovisualrecord.utils.api.apidata.searchco.COResultList;
import com.example.audiovisualrecord.utils.api.apidata.login.LoginRequest;
import com.example.audiovisualrecord.utils.api.apidata.login.LoginResponse;
import com.example.audiovisualrecord.utils.api.apidata.logoutsid.LogoutSidResponse;
import com.example.audiovisualrecord.utils.api.apidata.searchsid.SIDDataList;
import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPERequest;
import com.example.audiovisualrecord.utils.api.apidata.searchtype.TYPEResultList;
import com.example.audiovisualrecord.utils.api.searchshift.SHIFTRequest;
import com.example.audiovisualrecord.utils.api.searchshift.SHIFTResultList;
import com.example.audiovisualrecord.utils.api.searchpz.PZRequest;
import com.example.audiovisualrecord.utils.api.searchpz.PZResultList;
import com.example.audiovisualrecord.utils.api.searchdp.DPRequest;
import com.example.audiovisualrecord.utils.api.searchdp.DPResultList;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Url;

public interface ApiService {
    @POST
    Observable<COResultList> getCO(@Url String url, @Body CORequest mCORequest);
    @POST
    Observable<PZResultList> getPZ(@Url String url, @Body PZRequest mPZRequest);
    @POST
    Observable<DPResultList> getDP(@Url String url, @Body DPRequest mDPRequest);
    @POST
    Observable<SHIFTResultList> getSHIFT(@Url String url, @Body SHIFTRequest mSHIFTRequest);
    @POST
    Observable<TYPEResultList>getTYPE(@Url String url, @Body TYPERequest mTypeRequest);
    @POST
    Observable<LoginResponse> onLogin(@Url String url, @Body LoginRequest mLoginRequest);
    @GET
    Observable<SIDDataList> getSID(@Url String url);
    @POST
    Observable<LogoutSidResponse> onLogoutSid(@Url String url);
}
