package cn.axzo.workflow.core.service;

import cn.axzo.workflow.common.enums.ExtModelStateFieldEnum;
import cn.axzo.workflow.common.model.request.bpmn.print.PrintTemplateConfigUpsertDTO;
import cn.axzo.workflow.common.model.response.bpmn.model.BpmnModelExtVO;
import cn.axzo.workflow.common.model.response.print.PrintModelDTO;
import cn.axzo.workflow.core.repository.entity.ExtAxReModel;

import java.util.List;

/**
 * 模型扩展表操作 Service
 *
 * @author wangli
 * @since 2023/11/18 15:05
 */
public interface ExtAxReModelService {
    List<ExtAxReModel> listByModelIds(List<String> modelIds);

    void create(String modeId);

    void update(String modelId, Integer status);

    /**
     * 修改模型扩展表的状态
     *
     * @param modelId
     * @param status
     * @param field   “status”代运营开关状态 or “printStatus”打印开关状态
     */
    void changeStatus(String modelId, Integer status, ExtModelStateFieldEnum field);

    BpmnModelExtVO getStatusByModelId(String modelId);

    void printTemplateConfig(PrintTemplateConfigUpsertDTO dto);

    /**
     * 本方法主要判断开关以及有打印模板
     *
     * @param modelId
     * @return
     */
    Boolean hasPrintTemplateConfig(String modelId);

    PrintModelDTO getPrintTemplateConfig(String modelId);
}
