package com.phlx.wool.data.http;



import com.phlx.wool.entity.DivisionEntity;
import com.phlx.wool.entity.Harmless;
import com.phlx.wool.entity.Label;
import com.phlx.wool.entity.Marking;
import com.phlx.wool.entity.Quarantine;
import com.phlx.wool.entity.Unit;
import com.phlx.wool.entity.User;
import com.phlx.wool.entity.Veterinary;
import com.phlx.wool.entity.VillusBuyEntity;
import com.phlx.wool.entity.VillusGaugeEntity;
import com.phlx.wool.params.BasicParams;
import com.phlx.wool.params.CattleResponse;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;

/**
 * Created by goldze on 2019/3/26.
 */
public interface HttpDataSource {



    /**
     * 获取版本号
     */
    Observable<CattleResponse<Double>> versionGet();

    /**
     * 下载新版本
     */
    Observable<CattleResponse> DownloadApp();

    /**
     * 登录
     */
    Observable<CattleResponse<User>> loginPost(@Body RequestBody body);

    /**
     * 获取基本信息
     */
    Observable<CattleResponse<BasicParams>> getBasicInfo(@Body RequestBody body);
    /**
     * 获取发标记录
     */
    Observable<CattleResponse<List<Label>>> getLabelList(@Body RequestBody body);

    /**
     * 获取牧户信息
     */
    Observable<CattleResponse<List<Unit>>> getUnitList(@Body RequestBody body);

    /**
     * 获取兽医管理
     */
    Observable<CattleResponse<List<Veterinary>>> getVeterinaryList(@Body RequestBody body);


    /**
     * 获取绒毛购买
     */
    Observable<CattleResponse<List<VillusBuyEntity>>> getVillusBuyList(@Body RequestBody body);

    /**
     * 获取行政区划
     */
    Observable<CattleResponse<List<DivisionEntity>>> getDivisionList(@Body RequestBody body);


    /**
     * 上传打标信息
     */
    Observable<CattleResponse<List<Marking>>> submitMarking(@Body RequestBody body);

    /**
     * 上传绒毛购买信息
     */
    Observable<CattleResponse<List<VillusBuyEntity>>> submitVillusBuy(@Body RequestBody body);

    /**
     * 上传绒毛测量信息
     */
    Observable<CattleResponse<List<VillusGaugeEntity>>> submitVillusGauge(@Body RequestBody body);

    /**
     * 上传产地检疫
     */
    Observable<CattleResponse<List<Quarantine>>> submitQuarantine(@Body RequestBody body);

    /**
     * 上传无害化处理信息
     */
    Observable<CattleResponse<List<Harmless>>> submitHarmless(@Body RequestBody body);

}
