import Request from '@/utils/request/request-util';

/**
 * low_code 流程设计api
 *
 */
export class FlowDesignApi {
  /**
   * 查看流程设计的详情
   * @param {*} params
   * @returns
   */
  static flowDesignDetail(params) {
    return Request.get('/flowDesign/detail', params);
  }

  /**
   * 升级并保存流程设计
   * @param {*} params
   * @returns
   */
  static upgradeAndSave(params) {
    return Request.post('/flowDesign/upgradeAndSave', params);
  }

  /**
   * 保存流程设计
   * @param {*} params
   * @returns
   */
  static saveSixGraphDesign(params) {
    return Request.post('/flowDesign/saveSixGraphDesign', params);
  }

  /**
   * 定时任务 --------- 获取系统中的工作流定时任务列表
   * @param {*} params
   * @returns
   */
  static getActionClasses(params) {
    return Request.getAndLoadData('/nodeTimer/getActionClasses', params);
  }

  /**
   * 事件列表 --- 获取流程的执行类列表
   * @param {*} params
   * @returns
   */
  static listEventConsumers(params) {
    return Request.getAndLoadData('/modelEvent/listEventConsumers', params);
  }

  /**
   * 获取流程定义下拉列表
   * @param {*} params
   * @returns
   */
  static getDefinitionSelectList(params) {
    return Request.get('/model/getDefinitionSelectList', params);
  }

  /**
   * 获取表单配置列表
   * @param {*} params
   * @returns
   */
  static getFormPermissionList(params) {
    return Request.post('/flowDesignConfig/getFormPermissionList', params);
  }

  /**
   * 获取流程条件上字段的下拉列表
   * @returns {Promise<*>}
   */
  static getConditionSelectList(params) {
    return Request.get('/variable/getConditionSelectList', params);
  }

  /**
   * 验证条件表达式是否正确
   * @param params
   * @returns {Promise<*>}
   */
  static validateExpression(params) {
    return Request.post('/nodeConditionGroup/validateExpression', params);
  }

  /**
   * 获取流程实例进行中的流程节点和流程连线
   * @param instanceId
   * @returns {Promise<*>}
   */
  static runtimeInstanceGetRuntimeNodeEdgeList(params) {
    return Request.get('/runtimeInstance/getRuntimeNodeEdgeList', params);
  }

  /**
   * 获取表单定义下的所有字段信息列表
   * @param instanceId
   * @returns {Promise<*>}
   */
  static getFormFieldList(params) {
    return Request.get('/formItem/getFormFieldList', params);
  }
  
  /**
   * 任务列表 --- 获取流程的执行类列表
   * @param instanceId
   * @returns {Promise<*>}
   */
  static taskListEventConsumers(params) {
    return Request.getAndLoadData('/taskEvent/listEventConsumers', params);
  }

  /**
   * 获取认证信息下拉列表
   * @param instanceId
   * @returns {Promise<*>}
   */
  static authList(params) {
    return Request.getAndLoadData('/auth/list', params);
  }
}
