package com.yuchen.saas.message.api.feign.ws;

import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.yuchen.saas.message.api.dto.WebSocketMessagDTO;
import com.yuchen.saas.message.api.vo.NoticeVo;
import io.swagger.annotations.ApiOperation;
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;

/**
 * @author LLC
 * @date 2022/8/18 11:16
 * @Description
 */
@FeignClient(
        value = AppNameConstant.SAAS_MESSAGE,
        fallbackFactory = WebSocketFeignFallback.class
)
public interface WebSocketFeignServer {


    @PostMapping("/webSocket/convertAndSendToUser")
    R<Boolean> convertAndSendToUser(@RequestBody WebSocketMessagDTO messagDTO);


    @PostMapping("/webSocket/send")
    R send(@RequestBody NoticeVo noticeVo);

    @PostMapping("/webSocket/postConnect")
    R postConnect(@RequestBody NoticeVo noticeVo);

    @PostMapping("/webSocket/postEvent")
    R postEvent(@RequestBody NoticeVo noticeVo);

    @PostMapping("/webSocket/postFace")
    R postFace(@RequestBody NoticeVo noticeVo);

    @PostMapping("/webSocket/postVehicle")
    R postVehicle(@RequestBody NoticeVo noticeVo);
    @PostMapping("/webSocket/realTimeData")
    R realTimeData(@RequestBody NoticeVo noticeVo);

    @PostMapping("/webSocket/simulationData")
    R simulationData(@RequestBody NoticeVo noticeVo);
    @PostMapping("/webSocket/sendNotice")
    R sendNotice(@RequestBody NoticeVo noticeVo);
}
