package com.hdkj.lt.feign;

import com.hdkj.lt.base.constants.SystemGlobalConstant;
import com.hdkj.lt.modle.vo.recon.ReconstructionParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 重构方案服务 Feign 客户端
 * <p>
 * 供 mq 模块通过 Feign 调用 si 模块的 /recon/trigger 接口触发重构算法。
 * <p>
 * 返回 ApiResponse 完整 JSON 字符串，消费方用 fastjson 解析取 data 字段（ReconSaveResultVO）。
 *
 * @author lsl
 * @since 2026-07-19
 */
@FeignClient(path = "/recon", value = SystemGlobalConstant.SERVICE_NAME_LOAD_TRANSFER_SI,
        contextId = "IReconApiClient")
public interface IReconApiClient {

    /**
     * 触发重构方案计算
     *
     * @param param 重构参数（eventId + params{county_sid, county_name, problem_feeder_ids}）
     * @return ApiResponse 完整 JSON 字符串
     */
    @PostMapping("/trigger")
    String triggerReconfiguration(@RequestBody ReconstructionParam param);
}
