package com.sjkj.base_lib.net.request;

import com.sjkj.base_lib.camera.dh.bean.CameraBean;
import com.sjkj.base_lib.camera.dh.bean.CameraDetailsBean;
import com.sjkj.base_lib.camera.dh.bean.DhServiceBeanInfo;
import com.sjkj.base_lib.entity.DictionaryListBean;
import com.sjkj.base_lib.entity.FileBean;
import com.sjkj.base_lib.entity.Params;
import com.sjkj.base_lib.entity.ResponseBean;
import com.sjkj.base_lib.tree.bean.AddressTreeListBean;
import com.sjkj.base_lib.tree.bean.MailTreeListBean;

import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;
import rx.Observable;

public interface RetrofitBaseService {
    @GET("AppCameraController/getDahuaVideoServer")
    Observable<ResponseBean<DhServiceBeanInfo>> getDhServiceInfo(@QueryMap Map<String, Object> params);

    @POST("AppCameraController/detail")
    Observable<ResponseBean<CameraDetailsBean>> cameraDetails(@Body Params params);

    @POST("AppCameraController/rotation")
    Observable<ResponseBean<Object>> controlCamera(@Body Params params);

    @POST("AppCameraController/remoteList")
    Observable<ResponseBean<List<CameraBean>>> deviceList(@Body Params params);

    @GET("AppDataDictController/dictTree")
    Observable<ResponseBean<List<AddressTreeListBean>>> GetDictTree(@QueryMap Map<String, Object> params);

    @GET("AppBigDataController/getDeptList")
    Observable<ResponseBean<List<MailTreeListBean>>> GetCommun(@QueryMap Map<String, Object> params);

    @POST("AppDictUtilController/getDict")
    Observable<ResponseBean<DictionaryListBean>> dictionary(@Body Params params);


    @Multipart
    @POST("AppFileController/appUpload")
    Observable<ResponseBean<FileBean>> upload(@Part MultipartBody.Part file);
}
