import request from "@/utils/httpRequest";
import { FLOW_PATH as prefix } from "../AppPath";

export default {
	list: function (params) {
		return request({
			url: prefix + "/flowable/process/list",
			method: "get",
			params: params,
		});
	},

	runningDataList: function (params) {
		return request({
			url: prefix + "/flowable/process/runningData",
			method: "get",
			params: params,
		});
	},

	historyListData: function (params) {
		return request({
			url: prefix + "/flowable/process/historyListData",
			method: "get",
			params: params,
		});
	},

	revokeProcIns: function (id) {
		return request({
			url: prefix + "/flowable/process/revokeProcIns",
			method: "put",
			params: { id: id },
		});
	},

	deleteProcIns: function (ids, reason) {
		return request({
			url: prefix + "/flowable/process/deleteProcIns",
			method: "delete",
			params: {
				ids: ids,
				reason: reason,
			},
		});
	},

	deleteAllProcIns: function (ids) {
		return request({
			url: prefix + "/flowable/process/deleteAllProcIns",
			method: "delete",
			params: { procInsIds: ids },
		});
	},

	suspend: function (procDefId) {
		return request({
			url: prefix + "/flowable/process/update/suspend",
			method: "put",
			params: { procDefId: procDefId },
		});
	},

	active: function (procDefId) {
		return request({
			url: prefix + "/flowable/process/update/active",
			method: "put",
			params: { procDefId: procDefId },
		});
	},

	stop: function (id, message) {
		return request({
			url: prefix + "/flowable/process/stop",
			method: "put",
			params: { id: id, message: message },
		});
	},

	getFlowChart: function (processDefId) {
		return request({
			url: prefix + "/flowable/process/getFlowChart",
			method: "get",
			params: { processDefId: processDefId },
		});
	},

	queryProcessStatus: function (procDefId, procInsId) {
		return request({
			url: prefix + "/flowable/process/queryProcessStatus",
			method: "get",
			params: { procDefId: procDefId, procInsId: procInsId },
		});
	},

	exist: function (key) {
		return request({
			url: prefix + "/flowable/process/exist",
			method: "get",
			params: { key: key },
		});
	},

	getByName: function (name) {
		return request({
			url: prefix + `/flowable/process/getByName`,
			method: "get",
			params: { name: name },
		});
	},

	getById: function (id) {
		return request({
			url: prefix + `/flowable/process/getById`,
			method: "get",
			params: { id: id },
		});
	},
};
