package com.iailab.module.data.api.ind;

import com.iailab.module.data.api.ind.dto.ApiIndItemDTO;
import com.iailab.module.data.api.ind.dto.ApiIndItemQueryDTO;
import com.iailab.module.data.api.ind.dto.ApiIndItemValueDTO;
import com.iailab.module.data.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Set;

/**
 * @author PanZhibao
 * @Description
 * @createTime 2024年08月19日
 */
@FeignClient(name = ApiConstants.NAME)
@Tag(name = "指标数据")
public interface IndItemApi {

    String PREFIX = ApiConstants.PREFIX + "/ind-item";

    @GetMapping(PREFIX + "/query-ind/default-value")
    @Operation(summary = "查询指标默认值")
    List<ApiIndItemValueDTO> queryIndItemDefaultValue(@RequestParam("itemNo") String itemNo);

    @PostMapping(PREFIX + "/query-ind/history-value")
    @Operation(summary = "查询指标历史值")
    List<ApiIndItemValueDTO> queryIndItemHistoryValue(@RequestBody ApiIndItemQueryDTO dto);

    @GetMapping(PREFIX + "/info/id/{id}")
    @Operation(summary = "根据测点编号查询测点信息")
    ApiIndItemDTO getInfoById(@PathVariable("id") String id);

    @PostMapping(PREFIX + "/info/ids")
    @Operation(summary = "根据多个id查询指标数据信息")
    List<ApiIndItemDTO> getInfoByIds(@RequestParam("indIds") Set<String> indIds);
}