package com.yuchen.saas.integration.feign.api.feign;

import com.yuchen.saas.integration.feign.api.vo.*;
import org.nest.springwrap.core.launch.app.AppNameConstant;
import org.nest.springwrap.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Map;

@FeignClient(
		value = AppNameConstant.SAAS_DEVICE_INTEGRATED,
		fallback = CommonHikClientFallback.class
)
public interface CommonHikClient {
	
	@PostMapping("/commonHik/commonHikMethod")
	public <T> R<T> commonHikMethod(Map<String, Object> body);

	/**
	 * 根据车道编码反控道闸
	 * @param deviceControlVo 需要的参数VO
	 * @return
	 */
	@PostMapping("/commonHik/pms/deviceControl")
	R pmsDeviceControl(@RequestBody DeviceControlVo deviceControlVo);

	/**
	 * LED设备控屏
	 * @param ledControlVo 需要的参数VO
	 * @return
	 */
	@PostMapping("/commonHik/pms/ledControl")
	R pmsLedControl(@RequestBody LedControlVo ledControlVo);

	/**
	 * 设备播报控制
	 * @param voiceControl 需要的参数VO
	 * @return
	 */
	@PostMapping("/commonHik/pms/voiceControl")
	R pmsVoiceControl(@RequestBody VoiceControlVo voiceControl);

	/**
	 * 获取出入口列表
	 * @param entranceVo 需要的参数VO
	 * @return
	 */
	@PostMapping("/commonHik/pms/getEntranceList")
	R getEntranceList(@RequestBody EntranceVo entranceVo);

	/**
	 * 获取车道列表
	 * @param roadwayVo 需要的参数VO
	 * @return
	 */
	@PostMapping("/commonHik/pms/getRoadwayList")
	R getRoadwayList(@RequestBody RoadwayVo roadwayVo);
}
