package com.cico.nest.lcdp.boot.core.qxsd.infrastructure.gatewayimpl.http.sdgk;

import com.cico.nest.lcdp.boot.core.qxsd.infrastructure.gatewayimpl.http.qjmh.dto.QjmhBaseResult;
import com.cico.nest.lcdp.boot.core.qxsd.infrastructure.gatewayimpl.http.sdgk.dto.SdgkBaseResult;
import com.cico.nest.lcdp.boot.core.qxsd.infrastructure.gatewayimpl.http.sdgk.dto.SdgkEventHandleParamDTO;
import com.cico.nest.lcdp.boot.core.qxsd.infrastructure.gatewayimpl.http.xlw.dto.*;
import com.cico.nest.lcdp.boot.core.qxsd.infrastructure.gatewayimpl.http.sdgk.dto.SdgkEventAlarmResourceDTO;
import com.cico.nest.lcdp.boot.core.qxsd.infrastructure.gatewayimpl.http.sdgk.dto.SdgkEventAlarmDTO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;

/**
 * 隧道管控http接口
 * @author rfx
 * @date 2024/11/17
 */
public interface SdgkClientFeign {

    /**
     * 登录接口
     *
     * @param loginDTO 请求参数
     * @return result
     */
//    @PostMapping("/server/base/login/form")
//    SdgkBaseResult<Map<String, Object>> login( SdgkLoginDTO loginDTO);

    /**
     * 刷新token
     *
     * @return data
     */
    @PostMapping("/server/base/token/refresh")
    SdgkBaseResult<Map<String, Object>> refresh();

    /**
     * 事件处置接口
     *
     * @param body
     * @return
     */
    @PostMapping("/server/alarm/alarm/handle")
    QjmhBaseResult<Map<String, Object>> alarmHandle(@RequestBody SdgkEventHandleParamDTO body);

    /**
     * 事件处置结束接口
     *
     * @param eventIdDTO 事件id
     * @return
     */
    @PostMapping("/server/alarm/alarm/handle/end")
    QjmhBaseResult<Map<String, Object>> alarmHandleEnd(@RequestBody XlwEventIdDTO eventIdDTO);

    /**
     * 查询隧道管控系统事件详情接口
     *
     * @param id 告警id(alarmId)
     * @return 事件详情
     */
    @GetMapping("/server/alarm/alarm/detail")
    QjmhBaseResult<SdgkEventAlarmDTO> alarmDetail(@RequestParam("id") String id);

    /**
     * 查询隧道管控系统事件详情资源媒体接口
     *
     * @param alarmId 告警id
     * @return 事件详情资源媒体
     */
    @GetMapping("/server/alarm/alarm/resource/trafficEvent")
    SdgkEventAlarmResourceDTO alarmResource(@RequestParam("alarmId") String alarmId);


}
