package com.njzscloud.supervisory.hsoa;

import com.njzscloud.common.http.annotation.*;
import com.njzscloud.supervisory.hsoa.pojo.param.*;
import com.njzscloud.supervisory.hsoa.pojo.result.HsoaResult;
import com.njzscloud.supervisory.hsoa.pojo.result.LoginResult;
import com.njzscloud.supervisory.hsoa.pojo.result.UploadResult;

@RemoteServer(value = "${hsoa.base-url}")
public interface HsoaApi {
    /**
     * 登录
     */
    @PostEndpoint("/garbage/mLoginApi/login")
    HsoaResult<LoginResult> login(@FormBodyParam LoginParam param);

    /**
     * 刷新 TOKEN
     */
    @GetEndpoint("/garbage/mLoginApi/refreshToken")
    HsoaResult<LoginResult> refreshToken(@QueryParam RefreshTokenParam param);

    /**
     * 发送定位数据
     */
    @PostEndpoint("/garbage/commonApi/pushVehicleTrajectory")
    HsoaResult<Object> pushVehicleTrajectory(@JsonBodyParam PushVehicleTrajectoryParam param, @QueryParam TokenParam tokenParam);

    /**
     * 电子联单数据
     */
    @PostEndpoint("/garbage/api/pushProvincial/save")
    HsoaResult<Object> pushProvincial(@JsonBodyParam PushProvincialSaveParam param, @QueryParam TokenParam tokenParam);

    /**
     * 上传附件
     */
    @PostEndpoint("/garbage/api/pushProvincial/upload")
    UploadResult upload(@MultiBodyParam PushProvincialUploadParam param, @QueryParam TokenParam tokenParam);

}
