package cn.axzo.workflow.es.service;

import cn.axzo.workflow.common.model.request.es.TaskSearchReqDTO;
import cn.axzo.workflow.es.model.ProcessTaskDocument;

import java.util.Collection;
import java.util.List;

/**
 * 操作流程任务的 ES Service
 *
 * @author wangli
 * @since 2024-09-27 11:07
 */
public interface EsProcessTaskService {

    /**
     * 删除流程实例索引
     *
     * @return
     */
    Boolean deleteIndex();

    /**
     * 新增子文档(重复调用等于更新)
     *
     * @param routing
     * @param parentId
     * @param processTaskDocument
     * @return
     */
    Integer insert(String routing, String parentId, ProcessTaskDocument processTaskDocument);

    /**
     * 批量新增子文档(重复调用等于更新)
     *
     * @param routing
     * @param parentId
     * @param processTaskDocuments
     * @return
     */
    Integer insertBatch(String routing, String parentId, Collection<ProcessTaskDocument> processTaskDocuments);

    List<ProcessTaskDocument> search(TaskSearchReqDTO dto);

    Integer delete(String routing, String processInstanceId);
}
