package com.njcn.job.api;

import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.job.api.fallback.JobFeignClientFallbackFactory;
import com.njcn.job.model.XxlJobInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * @author hongawen
 * @version 1.0.0
 * @date 2022年04月18日 14:41
 */
@FeignClient(value = ServerInfo.JOB_ADMIN,path = "/job-admin/jobinfo",fallbackFactory = JobFeignClientFallbackFactory.class)
public interface JobFeignClient {

    /**
     * 新增定时任务
     * @param jobInfo 任务细节
     * @return 新增结果
     */
    @PostMapping("/addJob")
    @ResponseBody
    HttpResult<String> addJob(@RequestBody XxlJobInfo jobInfo);



    /**
     * 修改定时任务
     * @param jobInfo 任务细节
     * @return 修改结果
     */
    @PostMapping("/updateJob")
    @ResponseBody
    HttpResult<String> updateJob(@RequestBody XxlJobInfo jobInfo);



    /**
     * 删除定时任务
     * @param id
     * @return 新增结果
     */
    @GetMapping("/removeJob")
    @ResponseBody
    HttpResult<String> removeJob(@RequestParam("id")int id);



    /**
     * 停止定时任务
     * @param id
     * @return 新增结果
     */
    @GetMapping("/stopJob")
    @ResponseBody
    HttpResult<String> stopJob(@RequestParam("id")int id);

    /**
     * 启动任务
     * @param id 任务ID
     * @return 新增结果
     */
    @RequestMapping("/startTask")
    @ResponseBody
    HttpResult<String> startTask(@RequestParam("id")int id);
}
