package com.mortals.xhx.module.flowable.service;

import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.common.pdu.api.ApiRespPdu;
import com.mortals.xhx.common.pdu.flow.DefinitionVoPdu;
import com.mortals.xhx.common.pdu.flow.FlowProcDefPdu;
import com.mortals.xhx.common.pdu.flow.FlowSaveXmlPdu;
import com.mortals.xhx.common.pdu.flow.FlowTaskVoPdu;
import com.mortals.xhx.module.flowable.model.FlowableDefinitionEntity;
import com.mortals.xhx.module.flowable.model.FlowableDefinitionQuery;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * <p>Title: 流程定义表</p>
 * <p>Description: FlowableDefinitionService service接口 </p>
 * <p>Copyright: Copyright &reg;  </p>
 *
 * @version 1.0.0
 */

public interface FlowableDefinitionService extends ICRUDService<FlowableDefinitionEntity, Long> {


    Result<FlowableDefinitionEntity> getDefinList(FlowableDefinitionQuery query, PageInfo pageInfo, Context context);

    String readImage(String deployId);

    String readXml(String deployId);

    String saveXml(FlowSaveXmlPdu flowSaveXmlPdu,Context context);

    String start(String procDefId, String data, Context context);

    String updateState(DefinitionVoPdu definitionVoPdu,Context context);

    String deleteDefinition(DefinitionVoPdu definitionVoPdu,Context context);

    List<FlowTaskVoPdu> getAllProcessInstanceEl(String processDefinitionKey);

}