package com.sybotan.android.demo.retrofit;


import com.sybotan.android.demo.bean.BaseModel;
import com.sybotan.android.demo.bean.result.*;
import com.sybotan.android.demo.entitiies.Build;
import com.sybotan.android.demo.entitiies.DeviceType;

import java.util.ArrayList;
import java.util.List;

import com.sybotan.android.demo.entitiies.EqEntity;
import com.sybotan.android.demo.entitiies.RelationEq;
import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;

/**
 * Created by weimo on 2020/7/13.
 */
public interface API {
    //    //查询反馈后设备动作
//    @POST("server/ipad/custom/getEquipmentAction")
//    Observable<EquipmentActionModel> getEquipmentAction(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);
//
//    //下班后重新开启调节
//    @POST("server/ipad/custom/recover")
//    Observable<RecoverModel> recover(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);
//
//    //下班节能
//    @POST("server/ipad/custom/leave")
//    Observable<LeaveModel> leave(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);
//
//    //提交反馈
//    @POST("server/ipad/custom/feedback")
//    Observable<FeedbackModel> feedback(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);
//
//    //客服弹窗
//    @GET("http://54.222.237.147:8090/meeting/all")
//    Observable<BaseModel<ArrayList<MeetingModel>>> meeting(@Query("token") String token);
//
//    //客服弹窗
//    @PUT("http://54.222.237.147:8090/meetingBooking/cancel/{id}")
//    Observable<BaseModel<String>> cancel(@Path("id") String id, @Query("token") String token);

    //
//    //空间列表
//    @POST("server/ipad/space/getIpadSpaceList")
//    Observable<GetIpadSpaceListModel> getIpadSpaceList(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);
//
//    //地图展示--楼层空间列表
//    @GET("server/ipad/space/getIpadFloorSpaceList")
//    Observable<GetIpadFloorSpaceList> getIpadFloorSpaceList(@Query("pubname") String pubName, @Query("openid") String macAddress);
//
//    //查询单独空间中的信息
//    @POST("server/ipad/space/getIpadSpace")
//    Observable<BaseModel<ArrayList<QueryModel>>> query(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);
//
//    //查询单独空间中的信息
//    @POST("http://tenantslink.sagacloud.cn/server/light/onoff/set")
//    Observable<BaseModel<ArrayList<SetModel>>> set(@Query("projectId") String projectId, @Query("app") String app, @Query("userId") String userId, @Query("userName") String userName, @Query("userPhone") String userPhone, @Body RequestBody requestBody);
//
//    //下班后重新开启调节
//    @POST("server/ipad/custom/recover")
//    Observable<BaseModel<RecoverModel>> recover(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);
//
//    //下班节能
//    @POST("server/ipad/custom/leave")
//    Observable<BaseModel<LeaveModel>> leave(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);

    //
//    //投诉反馈
//    @POST("http://172.16.36.245:50009/feedbackSuggest/save")
//    @POST("server/feedbackSuggest/save")
//    Observable<BaseModel> save(@Query("pubname") String pubName, @Query("openid") String macAddress, @Body RequestBody requestBody);

//    /**
//     * 自动更新 app
//     */
//    @POST("https://edition.persagy.com/api/app/saas-version-app/Spring/MVC/entrance/unifier/VersionLastService")
//    Observable<BaseModel<List<AutoUpDateBean.Content>>> autoUpdateApp(@Body RequestBody body);
//
//    /**
//     * 天气
//     */
//    @GET("https://duoduoenv.sagacloud.cn/duoduo-service/fm-service/weather/getCurrent")
//    Observable<BaseModel<WeatherModel>> getCurrent(@Query("projectId") String projectId);
//

    /**
     * 查询空间和任务
     */
    @POST("clmt/job/space_job")
    Observable<BaseModel<List<SpaceJobModel>>> getSpaceJob(@Body RequestBody body);

    /**
     * 查询空间核查问题
     */
    @POST("clmt/query/problems")
    Observable<BaseModel<List<ProblemsModel>>> problems(@Body RequestBody body);

    /**
     * 添加空间核查问题
     */
    @POST("clmt/job/add_problem")
    Observable<BaseModel<AddProblemModel>> addProblem(@Body RequestBody body);

    /**
     * 设置空间核查问题的信息和状态
     */
    @POST("clmt/job/set_problem")
    Observable<BaseModel<SetProblemModel>> setProblem(@Body RequestBody body);

    /**
     * 关闭空间核查问题
     */
    @POST("clmt/job/close_problem")
    Observable<BaseModel<CloseProblemModel>> closeProblem(@Body RequestBody body);

    /**
     * 绑定二维码
     */
    @POST("clmt/job/bind_qrcode")
    Observable<BaseModel<BindQrcodeModel>> bindQrcode(@Body RequestBody body);

    /**
     * 查询对象绑定的二维码
     */
    @POST("clmt/query/qrcode")
    Observable<BaseModel<ArrayList<QrcodeModel>>> qrcode(@Body RequestBody body);

    /**
     * 设置空间的任务状态(新建和修改)
     */
    @POST("clmt/job/set_job")
    Observable<BaseModel<SetJobModel>> setJob(@Body RequestBody body);

    /**
     * 查询设备类型
     */
    @POST("clmt/dict/sys_eq_list")
    Observable<BaseModel<List<DeviceType>>> requestDeviceTypeJob();

    /**
     * 查询建筑楼层
     */
    @POST("clmt/query/building_floor?target=rtn")
    Observable<BaseModel<List<Build>>> requestBuildJob();

    /**
     * 查询空间下的设备(所在关系)
     */
    @POST("clmt/query/space_eq")
    Observable<BaseModel<List<SpaceEqModel>>> getSpaceEq(@Body RequestBody body);

    /**
     * 添加设备
     */
    @POST("clmt/job/add_eq")
    Observable<BaseModel<ResDeviceModel>> addDeviceJob(@Body RequestBody body);

    /**
     * 添加管线
     */
    @POST("clmt/job/add_pipe")
    Observable<BaseModel<AddPipeModel>> addPipe(@Body RequestBody body);

    /**
     * 查询空间下的管道
     */
    @POST("clmt/query/floor_pipe")
    Observable<BaseModel<ArrayList<SpacePipeModel>>> floorPipe(@Body RequestBody body);

    /**
     * 查询管道类型
     */
    @POST("clmt/dict/pipe_list")
    Observable<BaseModel<ArrayList<PipeListModel>>> pipeList(@Body RequestBody body);

    @POST("clmt/query/space_eq")
    Observable<BaseModel<List<RelationEq>>> getRelationEqs(@Body RequestBody body);

    // 添加设备与服务的关系
    @POST("clmt/job/add_eq_sp_rel")
    Observable<BaseModel<ResEqRel>> addEqToRel(@Body RequestBody body);

}
