package org.xyzh.api.crontab;

import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.core.page.PageRequest;
import org.xyzh.common.dto.crontab.TbCrontabTaskMeta;

import java.util.List;

/**
 * @description 定时任务元数据服务接口
 * @filename TaskMetaService.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-11-18
 */
public interface TaskMetaService {

    /**
     * @description 创建任务元数据
     */
    ResultDomain<TbCrontabTaskMeta> createTaskMeta(TbCrontabTaskMeta taskMeta);

    /**
     * @description 更新任务元数据
     */
    ResultDomain<TbCrontabTaskMeta> updateTaskMeta(TbCrontabTaskMeta taskMeta);

    /**
     * @description 删除任务元数据
     */
    ResultDomain<Boolean> deleteTaskMeta(String metaId);

    /**
     * @description 根据ID查询任务元数据
     */
    ResultDomain<TbCrontabTaskMeta> getTaskMetaById(String metaId);

    /**
     * @description 根据任务ID查询任务元数据
     */
    ResultDomain<TbCrontabTaskMeta> getTaskMetaByTaskId(String taskId);

    /**
     * @description 查询所有任务元数据
     */
    ResultDomain<TbCrontabTaskMeta> getAllTaskMeta();

    /**
     * @description 根据分类查询任务元数据
     */
    ResultDomain<TbCrontabTaskMeta> getTaskMetaByCategory(String category);

    /**
     * @description 分页查询任务元数据
     */
    ResultDomain<TbCrontabTaskMeta> getTaskMetaPage(PageRequest<TbCrontabTaskMeta> request);
}
