import { restartNf, stopNf } from '@/api/configManage/neManage';
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { Modal, message } from 'ant-design-vue/lib';
import useI18n from '@/hooks/useI18n';
import { useRouter } from 'vue-router';

export default function useNeOptions() {
  const router = useRouter();
  const { t } = useI18n();

  /**
   * 网元重启
   * @param row {neName,neType,neId}
   */
  function fnNeRestart(row: Record<string, any>) {
    Modal.confirm({
      title: t('common.tipTitle'),
      content: t('views.configManage.neManage.totalSure', {
        msg: row.neName,
        oper: t('views.configManage.neManage.restart'),
      }),
      onOk() {
        const key = 'restartNf';
        message.loading({ content: t('common.loading'), key });
        restartNf(row).then(res => {
          if (res.code === RESULT_CODE_SUCCESS) {
            message.success({
              content: t('common.msgSuccess', {
                msg: t('views.configManage.neManage.restart'),
              }),
              key,
              duration: 3,
            });
          } else {
            message.error({
              content: `${res.msg}`,
              key: key,
              duration: 3,
            });
          }
        });
      },
    });
  }

  /**
   * 网元停止
   * @param row {neName,neType,neId}
   */
  function fnNeStop(row: Record<string, any>) {
    Modal.confirm({
      title: t('common.tipTitle'),
      content: t('views.configManage.neManage.totalSure', {
        msg: row.neName,
        oper: t('views.configManage.neManage.stop'),
      }),
      onOk() {
        const key = 'restartNf';
        message.loading({ content: t('common.loading'), key });
        stopNf(row).then(res => {
          if (res.code === RESULT_CODE_SUCCESS) {
            message.success({
              content: t('common.msgSuccess', {
                msg: t('views.configManage.neManage.stop'),
              }),
              key: key,
              duration: 3,
            });
          } else {
            message.error({
              content: `${res.msg}`,
              key: key,
              duration: 3,
            });
          }
        });
      },
    });
  }

  /**
   * 跳转网元日志文件页面
   * @param row {neType,neId}
   */
  function fnNeLogFile(row: Record<string, any>) {
    router.push(`/logManage/neFile?neType=${row.neType}&neId=${row.neId}`);
  }

  return { fnNeRestart, fnNeStop, fnNeLogFile };
}
