initFunctionData = async (data) => {
  const {
    processId,
    payload,
    previousData,
    ref1Id,
    ref2Id,
    ref3Id,
    ref4Id,
    ref5Id,
    description,
  } = data;
  let { unitId } = data;
  // if (unitId == 14166153)
  // return { statusCode: 403, message: "درحال توسعه", error: data };
  const process =
    data.process ||
    (await bpmsDB.bpms_process.findOne({
      where: { id: processId, type: { [Op.in]: [0, 1] } },
      raw: true,
    }));
  // if (process.networkId) {
  const processNetwork = await db.network.findByPk(process.networkId, {
    raw: true,
    attributes: ["level"],
  });
  // const payloadNetwork = await db.network.findOne({
  //   where: {
  //     [`level${processNetwork.level}Id`]: process.networkId,
  //     id: payload.networkId,
  //   },
  //   raw: true,
  // });
  // }
  let processChecklist = await bpmsDB.bpms_processChecklist.findAll({
    where: { processId: process.id },
    attributes: ["checklistId"],
    order: [["ord", "asc"]],
  });

  const checklistIds =
    data?.checklists?.length
      ? data.checklists.map((item) => +item.id).filter(Boolean).join(",")
      : processChecklist
        .map((e) => +e.checklistId)
        .filter((id) => !isNaN(id) && id !== 0)
        .join(",");

  const previousTask = data.previousTask;
  const network = await db.network.findByPk(processNetwork.id, {
    raw: true,
  });
  let newData = {
    workflowId: process.workflowId,
    processId,
    userId: payload.userId,
    ..._.pick(network, [
      "level1Id",
      "level2Id",
      "level3Id",
      "level4Id",
      "level5Id",
      "level6Id",
    ]),
  };

  if (unitId) {
    const unit =
      data.unit ||
      (await db.unit.findOne({
        where: { id: unitId, status: 1 },
      }));
    newData = { ...newData, data: [{ questionId: 100009, answer: unitId }] };
  } else {
    const unitQuestion = data?.data?.find(
      (r) => r.questionId == 100009 && r.answer
    );
    if (unitQuestion) {
      unitId = unitQuestion.answer;
      const unit =
        data.unit ||
        (await db.unit.findOne({
          where: { id: unitId, status: 1 },
        }));
    }
    return { data: newData, transaction: data.transaction }
  }
}

module.exports = {
  initFunctionData
}