package com.muyu.rule.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.rule.common.domain.RuleEngine;
import com.muyu.rule.common.domain.RuleRegion;
import com.muyu.rule.common.domain.req.EtlRuleListReq;
import com.muyu.rule.common.domain.resp.EtlRuleResp;

import java.util.List;

/**
 * @Author：张承志
 * @Package：com.muyu.etl.service
 * @Project：cloud-etl
 * @name：EtlRuleService
 * @Date：2024/8/21 14:21
 */
public interface EtlRuleService extends IService<RuleEngine> {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    RuleEngine queryById(int id);


    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(int id);

    /**
     * 条件查询列表
     * @param req
     * @return
     */

    List<EtlRuleResp> selectList(EtlRuleListReq req);


    /**
     * 查询所有的规则作用域
     * @return
     */

    List<RuleRegion> findAllRuleRegion();

    /**
     * 查询规则和版本的接口
     * @param id
     * @return
     */

    EtlRuleResp selectRuleAndVersionById(Long id);

    /**
     * 开启状态接口
     * @param id
     */

    void openEngine(Long id);

    /**
     * 关闭状态的接口
     * @param id
     */
    void closeEngine(Long id);

    void activate(Long id);

    void disable(Long id);
}
