package cn.stylefeng.workflow.instance.api;

import cn.stylefeng.workflow.api.entity.design.Node;
import cn.stylefeng.workflow.api.entity.instance.RuntimeInstance;
import cn.stylefeng.workflow.api.pojo.InstanceContext;
import cn.stylefeng.workflow.api.pojo.instance.SummaryFieldValue;
import cn.stylefeng.workflow.instance.api.pojo.task.CommonTaskItem;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface InstanceApi {

    RuntimeInstance getInstanceInfById(Long instanceId);

    List<Node> calcNextNodeList(Node nodeInfo, InstanceContext instanceContext);

    List<CommonTaskItem> findInstanceDetailList(List<CommonTaskItem> originTaskList);

    List<RuntimeInstance> findInstanceDetailListTotal(Set<Long> instanceIdSet);

    Set<Long> getCurrentUserSubmitInstance();

    Map<Long, List<SummaryFieldValue>> getInstanceSummaryFieldValueList(Set<Long> instanceIdList);

}
