package cn.axzo.workflow.core.service;


import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelSearchDTO;
import cn.axzo.workflow.common.model.request.form.model.FormModelCreateDTO;
import cn.axzo.workflow.common.model.request.form.model.FormModelUpdateDTO;
import cn.axzo.workflow.common.model.response.BpmPageResult;
import cn.axzo.workflow.common.model.response.form.model.FormModelBaseVO;

import javax.annotation.Nullable;

/**
 * 表单模型服务
 *
 * @author wangli
 * @since 2023/7/24 23:47
 */
public interface FormModelService {

    String createFormModel(FormModelCreateDTO dto);

    void updateFormModel(FormModelUpdateDTO dto);

    BpmPageResult<FormModelBaseVO> getModelPage(BpmnModelSearchDTO dto);

    FormModelBaseVO getById(String formModelId, @Nullable String tenantId);

    FormModelBaseVO getByKey(String formModelKey, @Nullable String tenantId);

    String deployFormModelById(String formModelId, @Nullable String tenantId);

    String deployFormModelByKey(String formModelKey, @Nullable String tenantId);

    void deleteFormModelById(String formModelId, @Nullable String tenantId);

    void deleteFormModelByKey(String formModelKey, @Nullable String tenantId);


}
