/* eslint-disable spaced-comment */
/********************* 1.项目常量定义 **********************/
class Hotax {}

// 资源类型 <视频|音频|直播|图片>
Hotax.RESOURCE_VIDEO = 0;
Hotax.RESOURCE_AUDIO = 1;
Hotax.RESOURCE_LIVE = 2;
Hotax.RESOURCE_IMAGE = 3;

// 清晰度类型 <流畅|标清|高清|超清>
Hotax.QUALITY_FLUENT = 'fluent';
Hotax.QUALITY_STANDARD = 'standard';
Hotax.QUALITY_HIGH = 'high';
Hotax.QUALITY_SUPERCLEAR = 'superclear';

// 产品类型 <课|课程|配套|师训|课程包>
Hotax.PRODUCT_LESSON = 'LESSON';
Hotax.PRODUCT_COURSE = 'COURSE';
Hotax.PRODUCT_SUPPORT = 'SUPPORT';
Hotax.PRODUCT_TRAINING = 'TRAINING';
Hotax.PRODUCT_PACKAGE = 'PACKAGE';

// 删除状态 <正常|删除>
Hotax.STATUS_NORMAL = 'NORMAL';
Hotax.STATUS_DELETE = 'DEL';

// 订单状态 <待支付|已作废|已支付|待发货|已发货|待收货|已收货|待退款|已完成>
Hotax.ORDER_UNPAID = 'UNPAID';
Hotax.ORDER_CANCEL = 'CANCEL';
Hotax.ORDER_PAYOK = 'PAYOK';
Hotax.ORDER_FORSEND = 'FORSEND';
Hotax.ORDER_SENT = 'SENT';
Hotax.ORDER_RECEIVED = 'RECEIVED';
Hotax.ORDER_REFUND = 'REFUND';
Hotax.ORDER_COMPLETE = 'COMPLETE';

// 拆单状态 <已拆单|不需拆单|未拆单>
Hotax.ORDER_SPLITED = 'YES';
Hotax.ORDER_UNSPLIT = 'UN';
Hotax.ORDER_NOSPLIT = 'NO';

// 商品类型 <虚拟|实体>
Hotax.GOODS_VIRTUAL = 'VIRTUAL';
Hotax.GOODS_ENTITY = 'ENTITY';

// 平台代号 <供应商|平台方|渠道方>
Hotax.DOMAIN_CP = 1010;
Hotax.DOMAIN_LJ = 2010;
Hotax.DOMAIN_PJ = 3010;

// 计价单位及时长
Hotax.CHARGE_UNIT_SEASON = '季';
Hotax.CHARGE_UNIT_HALF_YEAR = '半年';
Hotax.CHARGE_UNIT_YEAR = '年';
Hotax.CHARGE_UNIT_ITEM = '件';
Hotax.CHARGE_UNIT_DAY = '天';
Hotax.DURATION_SEASON = 90;
Hotax.DURATION_HALF_YEAR = 180;
Hotax.DURATION_YEAR = 365;
Hotax.DURATION_DAY = 1;
Hotax.DURATION_ITEM = 0;

// 账号的绑定状态
Hotax.ACCOUNT_BINDING = 1;
Hotax.ACCOUNT_UNBOUND = 0;

// 分页大小
Hotax.PAGE_SIZE = 20;
// 上传文件最大尺寸
Hotax.FILE_MAX_SIZE = 5; // Index max size should below 5M
// 项目名称
Hotax.PROJECT_NAME = 'Hotax';
// 版权声明
Hotax.CopyRight = '2017-2020 领教信息科技有限公司';
// 接口地址(本地)
Hotax.API_HOST_LOC = 'http://192.168.1.40:8500';
// 接口地址(测试)
Hotax.API_HOST_DEV = 'http://tt-cms.api.ai160.com';
// 接口地址(线上)
Hotax.API_HOST_PRO = 'http://cms.lingjiao.cn/api/v1';
// oss存储地址
Hotax.OSS_HOST = 'http://efunimgs.oss-cn-beijing.aliyuncs.com';
/********************* 常量定义结束 **********************/

/********************* 2.接口路径定义 **********************/
const apiObj = {
  userLogin: '/login',
  userLogout: '/logout',
  resource: '/resource/list',
  resourceItem: '/resource',
  signature: '/oss/signature',
  merchant: '/merchant/list',
  merchantItem: '/merchant',
  recommend: '/merchant/recommend',
  poster: '/merchant/poster',
  posterItem: '/poster',
  deposit: '/money/charge',
  campus: '/campus/list',
  campusItem: '/campus',
  terminal: '/user/list',
  terminalItem: '/user',
  terminalUnbound: '/device/unbind',
  specialTerminal: '/white/user/list',
  specialTerminalItem: '/white/user',
  cmsUser: '/cms/user/list',
  cmsUserItem: '/cms/user',
  courseware: '/ware/list',
  coursewareItem: '/ware',
  lesson: '/lesson/list',
  lessonItem: '/lesson',
  tagGroup: '/group/list',
  tagGroupItem: '/group',
  tagType: '/tagType/list',
  tagTypeItem: '/tagType',
  tag: '/tag/list',
  tagItem: '/tag',
  product: '/product',
  items: '/merchant/product',
  itemDetail: '/merchant/product/detail',
  itemCreate: '/merchant/product/status',
  itemBindTags: '/merchant/product/tags',
  itemBindPrices: '/goods',
  shopCart: '/buymsg/list',
  order: '/order',
  subOrder: '/order/detail',
  orderPay: '/order/pay',
  orderSend: '/order/send',
  orderReceive: '/order/receive',
  snapshot: '/order/snapshot',
  configUser: '/user/userTag/uid',
  configUserTag: '/userTag',
  configCourse: '/user/userRecommend/uid',
  copyTag: '/userTag/copy',
};

/**
 * 将api路径转化为绝对地址
 * @return {Object} 绝对地址
 */
function apiFormatter() {
  // 根据环境变量选取接口地址
  let prefix = '';
  if (process.env.API === 'LOC') {
    prefix = Hotax.API_HOST_LOC;
  } else if (process.env.API === 'PRO') {
    prefix = Hotax.API_HOST_PRO;
  } else {
    prefix = Hotax.API_HOST_DEV;
  }
  // 生成接口绝对地址
  const newApiObj = {};
  Object.keys(apiObj).forEach((apiKey) => {
    newApiObj[apiKey] = prefix + apiObj[apiKey];
  });
  return newApiObj;
}
const api = apiFormatter();
/********************* 接口定义结束 **********************/

export { Hotax, api };