import request from '@/utils/request'

/**
 * 删除实体类
 * @param opts
 */
//旧的delEntityClass函数
/* function delEntityClass (id) {
  return ajax({
    method: 'post',
    url: '/entcls/del/{id}',
    path: {
      id: id
    }
  })
} */
//新的delEntityClass函数
function delEntityClass(id) {
	return request({
		method: 'delete',
		url: `/knowledge/class/entcls/del/${id}`
	})
}

/**
 * 新增实体类
 * @param1 entClsName
 * @param2 entClsType
 * @param3 pid
 */
//旧的addEntityClass函数
/* function addEntityClass(data) {
	return ajax({
		method: 'post',
		url: '/entcls/add',
		data: {
			entClsName: data.entClsName,
			pid: data.pid,
			entClsMemo: data.entClsMemo,
			entClsIcon: data.entClsIcon,
			backGroundColor: data.backGroundColor

		}
	})
} */
//新的addEntityClass函数
function addEntityClass(data) {
	return request({
		method: 'post',
		url: `/knowledge/class/entcls/add`,
		data: {
			entClsName: data.entClsName,
			pid: data.pid,
			entClsMemo: data.entClsMemo,
			entClsIcon: data.entClsIcon,
			backGroundColor: data.backGroundColor

		}
	})
}

/**
 * 获取所有实体类列表
 */
//旧的getAllEntityClass函数
/* function getAllEntityClass(isIcon) {
	return ajax({
		method: 'get',
		url: '/entcls',
		data: {
			isIcon: isIcon
		}
	})
} */
//新的getAllEntityClass函数
function getAllEntityClass(isIcon) {
	return request({
		method: 'get',
		url: `/knowledge/class/entcls`,
		data: {
			isIcon: isIcon
		}
	})
}

/**
 * 获取所有根实体类列表
 */
// /graph/entcls/root/tree
//旧的getAllEntclsRootTree函数
/* function getAllEntclsRootTree() {
	return ajax({
		method: 'get',
		url: '/entcls/root/tree',
	})
} */
//新的getAllEntclsRootTree函数
function getAllEntclsRootTree() {
	return request({
		method: 'get',
		url: `/entcls/root/tree`,
	})
}

/**
 * 获取单个实体类
 * @param id 实体类id
 */
//旧的getEntityClass函数
/* function getEntityClass(id) {
	return ajax({
		method: 'get',
		url: '/entcls/{id}',
		path: {
			id: id
		}
	})
} */
//新的getEntityClass函数
function getEntityClass(id) {
	return request({
		method: 'get',
		url: `/knowledge/class/entcls/${id}`,
		params: {
			id: id
		}
	})
}

/**
 * 实体类修改接口
 * @param type
 * @param id
 * @param name
 * @param entClsMemo
 * @param backGroundColor
 * @returns {*}
 */
//旧的updateEntityClass函数
/* function updateEntityClass(type, id, name, entClsMemo, entClsIcon, backGroundColor) {
	return ajax({
		method: 'post',
		url: '/entcls/update',
		data: {
			entClsAllowAttrType: type,
			entClsID: id,
			entClsName: name,
			entClsMemo: entClsMemo ? entClsMemo : '',
			entClsIcon: entClsIcon,
			backGroundColor: backGroundColor
		}
	})
} */
//新的updateEntityClass函数
function updateEntityClass(type, id, name, entClsMemo, entClsIcon, backGroundColor) {
	return request({
		method: 'post',
		url: `/knowledge/class/entcls/update`,
		data: {
			entClsAllowAttrType: type,
			entClsID: id,
			entClsName: name,
			entClsMemo: entClsMemo ? entClsMemo : '',
			entClsIcon: entClsIcon,
			backGroundColor: backGroundColor
		}
	})
}

/**
 * OWL文件导入
 * @param file
 * @param userCode
 * @returns {*}
 */
//旧的owlFileImport函数
/* function owlFileImport(file) {
	return ajax({
		method: 'post',
		url: '/owl/file/import',
		headers: {
			'Content-Type': 'multipart/form-data'
		},
		data: {
			file
		}
	})
} */
//新的owlFileImport函数
function owlFileImport(file) {
	return request({
		method: 'post',
		url: `/owl/file/import`,
		headers: {
			'Content-Type': 'multipart/form-data'
		},
		data: {
			file
		}
	})
}

/**
 * oWL导出
 * @param id
 * @returns {*}
 */
//旧的owlFileExport函数
/* function owlFileExport(id) {
	return ajax({
		method: 'get',
		url: '/owl/file/export',
		data: {
			entClsIDs: id
		}
	})
} */
//新的owlFileExport函数
function owlFileExport(id) {
	return request({
		method: 'get',
		url: `/owl/file/export`,
		data: {
			entClsIDs: id
		}
	})
}

/**
 * 实体类树懒加载接口
 * @param id
 * @returns {*}
 */
//旧的entClsTreeLazy函数
/* function entClsTreeLazy(id) {
	return ajax({
		method: 'get',
		url: '/entcls/tree',
		data: {
			entClsID: id
		}
	})
} */
//新的entClsTreeLazy函数
function entClsTreeLazy(id) {
	return request({
		method: 'get',
		url: `/knowledge/class/entcls/tree`,
		data: {
			entClsID: id
		}
	})
}

/**
 * 根据实体类节点获取当前实体类节点的所有父节点
 * @param id
 * @returns {*}
 */
//旧的getEntClsParents函数
/* function getEntClsParents(id) {
	return ajax({
		method: 'get',
		url: '/entcls/parents',
		data: {
			entClsID: id
		}
	})
} */
//新的getEntClsParents函数
function getEntClsParents(id) {
	return request({
		method: 'get',
		url: `/entcls/parents`,
		data: {
			entClsID: id
		}
	})
}

/**
 *待审属性类查找接口
 * @param id
 * @returns {*}
 */
//旧的getEntClsNoneList函数
/* function getEntClsNoneList(id) {
	return ajax({
		method: 'post',
		url: '/attrcls/none/list',
		data: {
			entClsID: id
		}
	})
} */
//新的getEntClsNoneList函数
function getEntClsNoneList(id) {
	return request({
		method: 'get',
		url: `/knowledge/classAttribute/attrcls/none/list`,
		params: {
			entClsID: id
		}
	})
}

/**
 *attrcls/none/merge
 * 属性类合并接口
 * @param id
 * @returns {*}
 **/
//旧的getEntClsNoneMerge函数
/* function getEntClsNoneMerge(data) {
	return ajax({
		method: 'post',
		url: '/attrcls/none/merge',
		headers: {
			'Content-Type': 'application/json;charset=UTF-8'
		},
		data: data,
		json: true
	})
} */
//新的getEntClsNoneMerge函数
function getEntClsNoneMerge(data) {
	return request({
		method: 'post',
		url: `/attrcls/none/merge`,
		headers: {
			'Content-Type': 'application/json;charset=UTF-8'
		},
		data: data,
		json: true
	})
}

/**
 *attrcls/none/move
 * NONE属性类迁移接口
 * @attrClsID  id
 * @mergeAttrClsIDs  {*}
 **/
//旧的getEntClsNoneMmove函数
/* function getEntClsNoneMmove(data) {
	return ajax({
		method: 'post',
		url: '/attrcls/none/move',
		// headers: {'Content-Type': 'application/json;charset=UTF-8'},
		data: data,
		// json: true
	})
} */
//新的getEntClsNoneMmove函数
function getEntClsNoneMmove(data) {
	return request({
		method: 'post',
		url: `/attrcls/none/move`,
		// headers: {'Content-Type': 'application/json;charset=UTF-8'},
		data: data,
		// json: true
	})
}

/**
 * 待审属性调整保存接口
 * @param data
 * @returns {*}
 */
//旧的saveAttrNoneAdjust函数
/* function saveAttrNoneAdjust(data) {
	return ajax({
		method: 'post',
		url: '/attr/none/adjust',
		headers: {
			'Content-Type': 'application/json;charset=UTF-8'
		},
		data: data,
		json: true
	})
} */
//新的saveAttrNoneAdjust函数
function saveAttrNoneAdjust(data) {
	return request({
		method: 'post',
		url: `/attr/none/adjust`,
		headers: {
			'Content-Type': 'application/json;charset=UTF-8'
		},
		data: data,
		json: true
	})
}

/**
 *
 实体类添加自定义属性类
 * @param data
 * @returns {*}
 */
//旧的addPublicAttrCls函数
/* function addPublicAttrCls(data) {
	return ajax({
		method: 'post',
		url: '/entcls/add/public/attrcls',
		data: data
	})
} */
//新的addPublicAttrCls函数
function addPublicAttrCls(data) {
	return request({
		method: 'post',
		url: `/entcls/add/public/attrcls`,
		data: data
	})
}

/**
 * 获取编排ID
 * @param entClsId
 * @returns {*}
 */
//旧的getFlowId函数
/* function getFlowId(entClsId) {
	return ajax({
		method: 'get',
		url: '/neural/flow',
		data: {
			entClsId
		}
	})
} */
//新的getFlowId函数
function getFlowId(entClsId) {
	return request({
		method: 'get',
		url: `/neural/flow`,
		data: {
			entClsId
		}
	})
}

/**
 * 获取编排ID
 * @param entClsID
 * @returns {*}
 */
//旧的getEntClsPrefixList函数
/* function getEntClsPrefixList(entClsID) {
	return ajax({
		method: 'get',
		url: '/entcls/prefix/tree',
		data: {
			entClsID
		}
	})
} */
//新的getEntClsPrefixList函数
function getEntClsPrefixList(entClsID) {
	return request({
		method: 'get',
		url: `/entcls/prefix/tree`,
		data: {
			entClsID
		}
	})
}

/**
 * 获取编排ID
 * @param entClsID
 * @param entClsPrefix
 * @returns {*}
 */
//旧的updateEntClsPrefix函数
/* function updateEntClsPrefix(entClsID, entClsPrefix) {
	return ajax({
		method: 'post',
		url: '/entcls/prefix/update',
		data: {
			entClsID,
			entClsPrefix
		}
	})
} */
//新的updateEntClsPrefix函数
function updateEntClsPrefix(entClsID, entClsPrefix) {
	return request({
		method: 'post',
		url: `/entcls/prefix/update`,
		data: {
			entClsID,
			entClsPrefix
		}
	})
}

/**
 * 保存生成规则
 * @param entClsID
 * @param entClsConfig
 * @returns {*}
 */
//旧的updateEntClsConfig函数
/* function updateEntClsConfig(entClsID, entClsConfig) {
	return ajax({
		method: 'post',
		url: '/entcls/config/update',
		data: {
			entClsID,
			entClsConfig
		}
	})
} */
//新的updateEntClsConfig函数
function updateEntClsConfig(entClsID, entClsConfig) {
	return request({
		method: 'post',
		url: `/entcls/config/update`,
		data: {
			entClsID,
			entClsConfig
		}
	})
}

/**
 * 清楚主库和模板库
 * @param message
 * @returns {*}
 */
//旧的clearDatabase函数
/* function clearDatabase(message, clientType) {
	return ajax({
		method: 'post',
		url: '/vertex/all/drop',
		data: {
			message,
			clientType,
			noTimeout: true
		}
	})
} */
//新的clearDatabase函数
function clearDatabase(message, clientType) {
	return request({
		method: 'post',
		url: `/vertex/all/drop`,
		data: {
			message,
			clientType,
			noTimeout: true
		}
	})
}

export {
	addPublicAttrCls,
	saveAttrNoneAdjust,
	getEntClsNoneMmove,
	getEntClsNoneMerge,
	getEntClsNoneList,
	getEntClsParents,
	entClsTreeLazy,
	owlFileExport,
	owlFileImport,
	delEntityClass,
	addEntityClass,
	getAllEntityClass,
	getEntityClass,
	updateEntityClass,
	getFlowId,
	getAllEntclsRootTree,
	getEntClsPrefixList,
	updateEntClsPrefix,
	updateEntClsConfig,
	clearDatabase
}
