export enum FLOW_USE_STATUS {
  /**
   * 禁用
   */
  STOP = 0,
  /**
   * 使用中
   */
  USED = 1,
}

export enum FLOW_OPERATION_TYPE {
  /**
   * 创建
   */
  CREATE = 'create',
  /**
   * 修改
   */
  EDIT = 'edit',
  /**
   * 升版
   */
  UPGRADE = 'upgrade',
  /**
   * 复制
   */
  COPY = 'copy',
}

export enum FLOW_APPROVE_STATUS_ENUM {
  /**
   * 未审核
   */
  NOT_APPROVED = 0,
  /**
   * 审核中
   */
  APPROVING = 1,
  /**
   * 审核通过
   */
  APPROVED = 2,
  /**
   * 审核不通过
   */
  NOT_APPROVED_REJECT = 3,
}

export enum FLOW_TEMPLATE_PUBLIC_STATUS {
  /**
   * 私有
   */
  PRIVATE = '2',
  /**
   * 公共
   */
  PUBLIC = '1',
}

export const FLOW_APPROVE_MAP = new Map([
  [FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED, '未审核'],
  [FLOW_APPROVE_STATUS_ENUM.NOT_APPROVED_REJECT, '审核不通过'],
  [FLOW_APPROVE_STATUS_ENUM.APPROVED, '审核通过'],
  [FLOW_APPROVE_STATUS_ENUM.APPROVING, '评审中']])
  ;

export const FLOW_NODE_TYPE_ENUM = {
  /**
   * 起始节点
   */
  START: 'start',
  /**
   * 结束节点
   */
  END: 'end',
};

export enum WIDGET_TYPE {
  INPUT = 'INPUT',
  INPUTS = 'INPUTS',
  SELECT = 'SELECT',
  RADIO = 'RADIO',
  CHECKBOX = 'CHECKBOX',
  CHECKBOXS = 'CHECKBOXS',
  NUMBER_INPUT = 'NUMBER',
  NUMBER_INPUTS = 'NUMBERS',
  VIEW = 'VIEW',
  FILE = 'FILE',
  SLIDER = 'SLIDER',
  // 求解器资源
  SOURCE = 'SOURCE',
  // 工况批量
  BATCH_LOADCASE = 'BATCH_LOADCASE',
  // 求解器特殊类型
  SOLVER = 'SOLVER',
  // 通用工具的脚本
  SCRIPT = 'SCRIPT',
}

export enum WIDGET_IDS {
  MODEL_SELECT = 'model',
  SOLVER_CONFIG = 'solverConfig',
  SCRIPT = 'script',
  ATTACHMENT_SELECT = 'attachment',
  /** 前处理 */
  PRE_PROCESS = 'preProcess',
  /** 头文件名 */
  HEAD_NAME = 'headName',
  /** 3dlite 输入文件类型 */
  INPUT_FILE_TYPE = 'inputFileType',
  /** 创建新的工作目录 */
  TRANSLATE_3D_LITE = 'translate3DLite',
  /** 作业名称拼接项目信息 */
  JOB_NAME_JOINT_PROJECT_INFO = 'jobNameJointProjectInfo',

  // 工具部分
  APP_NAME = 'appName',
  APP_PATH = 'appPath',
  APP_SCRIPT = 'appScript',
  APP_COMMAND = 'appCommand',

  // 求解器配置部分
  /** 作业名 */
  JOB_NAME = 'jobName',
  SOLVER_NAME = 'SolverName',
  /** 版本 */
  VERSION = 'SolverVersion',
  /** 资源 */
  NODE_GROUP = 'NodeGroup',
  /** 核心 */
  NODE_CORES = 'NodeCores',
  /** 节点 */
  NODES = 'NodeNumber',
  /** 系统类型 */
  SYSTEM_TYPE = 'systemType',
}

export enum PAGE_TYPE {
  MODEL = 'page-model',
  PARAM = 'page-param',
  SOLVER = 'page-solver',
  POST = 'page-post',
  CUSTOM = 'page-custom',
  APPLICATION = 'page-application',
}

export enum NODE_TYPE {
  SCRIPT = 'script',
  PPT = 'ppt',
  START = 'circle-start',
  END = 'circle-end',
  GROUP = 'custom-group',
  ANSA = 'ansa',
  // HYPERVIEW = 'hyper-mesh',
  META = 'meta',
  LSDYNA = 'lsdyna',
  ABAQUS = 'abaqus',
  NASTRAN = 'nastran',
  OPTISTRUCT = 'optistruct',
  // STARCCM = 'starccm',
  // FIPS = 'FIPS',
  NCODE = 'ncode',
  VSS = 'VSS',
  OPTIMNUS = 'Optimus',
  LITE3D = '3dlite',

  // application
  // TOOL = 'tool',
  FLUENT = 'Fluent',
  STARTCCM = 'StartCCM+',
  AMESIM = 'AMESim',
  SIMULINK = 'Simulink',
  TECPLOT = 'Tecplot',
  PARAVIEW = 'ParaView',
  HYPERVIEW = 'HyperView',
  HYPERMESH = 'HyperMesh',
  EXCEL = 'Excel',
  MATLAB = 'Matlab',
  CATIA = 'CATIA',
  CREO = 'Creo',
  NX = 'NX',
  MAXWELL = 'MaxWell',
  CST = 'CST',
  FEKO = 'FEKO',
  ADAMS = 'Adams',
}
