package com.iailab.module.model.api.controller.admin;
import com.iailab.framework.common.pojo.CommonResult;
import com.iailab.module.model.api.mdk.MdkApi;
import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO;
import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO;
import com.iailab.module.model.common.utils.ApiSecurityUtils;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author DongYukun
 * @Description
 * @createTime 2025年1月2日
 */
@Slf4j
@RestController
@RequestMapping("/model/api/mdk")
@Tag(name = "数据")
public class MdkApiController {

    @Resource
    private ApiSecurityUtils apiSecurityUtils;

    @Autowired
    private MdkApi mdkApi;

    @PostMapping("/schedule-model/out")
    @Operation(summary = "调度模型数据下发")
    public CommonResult<Boolean> scheduleModelOut(HttpServletResponse response, HttpServletRequest
            request, @RequestBody MdkScheduleRespDTO dto) throws Exception {
        apiSecurityUtils.validate(request);
        Boolean data = mdkApi.scheduleModelOut(dto);
        return CommonResult.success(data);
    }

    @PostMapping("/schedule-result")
    @Operation(summary = "获取调度执行结果,不保存记录")
    public CommonResult<MdkScheduleRespDTO> runSchedule(HttpServletResponse response, HttpServletRequest
            request, @RequestBody MdkScheduleReqDTO reqDTO) throws Exception {
        apiSecurityUtils.validate(request);
        MdkScheduleRespDTO data = mdkApi.runSchedule(reqDTO);
        return CommonResult.success(data);
    }
}