// 用户类型
export const UserType = {
  ADMIN: '1', // 系统用户
  USER: '2', // 普通用户

  // 判断是否是管理员
  isAdminType(userType) {
    return userType === UserType.ADMIN;
  }
}

// 角色
export const RoleKeys = {
  ADMIN: "admin", // 超级管理员
  AGENT: "agent", // 代理商
  MCH: "mch", // 运营商
}

// 应用类型
export const AppType = {
  WECHAT: "1", // 微信
  ALI_PAY: "2", // 支付宝
}

// 渠道类型
export const ChannelType = {
  SYSTEM: "1", // 官方收款
  CUSTOM: "2", // 用户收款
}

// 渠道API类型
export const ChannelApiType = {
  WECHAT: "WX", // 微信
  ALI_PAY: "ALI", // 支付宝
  BANK: "BANK", // 银行卡
  BALANCE: "BALANCE", // 余额
  TM_WX: "TM_WX", // 太米微信
}

// 运营区状态
export const AreaStatus = {
  OPEN: "0", // 运营
  CLOSE: "1", // 停运
}

// 子区域状态
export const AreaSubStatus = {
  NORMAL: "0", // 正常
  DISABLED: "1", // 禁用
}

// 子区域类型
export const AreaSubType = {
  PARKING: "1", // 停车区
  NO_PARKING: "2", // 禁停区
  NO_RIDE: "3", // 禁行区
}

// 套餐类型
export const SuitType = {
  SHARE: "1", // 共享
  RENTAL: "2", // 租赁
}

// 套餐状态
export const SuitStatus = {
  NORMAL: "0", // 正常
  DISABLED: "1", // 禁用
}

// 套餐租赁单位
export const SuitRentalUnit = {
  MINUTE: "minutes", // 分钟
  HOUR: "hours", // 小时
  DAY: "day", // 天
}

// 计费方式
export const SuitRidingRule = {
  START: "1", // 起步价
  INTERVAL: "2", // 区间计费
}

// 设备状态
export const DeviceStatus = {
  STORAGE: "0", // 仓库中
  AVAILABLE: "1", // 待骑行
  RESERVED: "2", // 预约中
  IN_USE: "3", // 骑行中
  TEMP_LOCKED: "4", // 临时锁车
  DISPATCHING: "6", // 调度中
  DISABLED: "8", // 禁用
  Q_LOCKED: "9", // 强制锁车

  // 允许入仓的设备状态
  canIn() {
    return [this.AVAILABLE, this.DISPATCHING, this.DISABLED];
  },
  // 允许出仓的设备状态
  canOut() {
    return [this.STORAGE];
  },
  // 允许禁用的设备状态
  canDisable() {
    return [this.AVAILABLE, this.DISPATCHING, this.STORAGE];
  },
  // 允许启用的设备状态
  canEnable() {
    return [this.DISABLED];
  },
  // 允许管理员开锁的设备状态
  canAdminUnlock() {
    return [this.DISPATCHING, this.STORAGE, this.AVAILABLE, this.TEMP_LOCKED, this.Q_LOCKED];
  },
  // 允许用户开锁的设备状态
  canUserUnlock() {
    return [this.IN_USE, this.AVAILABLE, this.TEMP_LOCKED];
  },
  // 允许用户锁车的设备状态
  canUserLock() {
    return [this.AVAILABLE, this.TEMP_LOCKED, this.DISPATCHING, this.IN_USE];
  },
  // 允许管理员锁车的状态
  canAdminLock() {
    return [this.AVAILABLE, this.TEMP_LOCKED, this.DISPATCHING, this.IN_USE, this.Q_LOCKED];
  },
  // 允许用户使用的设备状态
  canUse() {
    return [this.AVAILABLE];
  },
  // 允许返回运营区上电
  canBackUnlock() {
    return [this.Q_LOCKED];
  },
  // 允许强制锁车的状态
  canQLock() {
    return this.canAdminLock();
  }
}

// 设备锁状态
export const DeviceLockStatus = {
  LOCKED: "0", // 锁车
  UNLOCKED: "1", // 开锁
}

// 加盟类型
export const AreaJoinType = {
  JOIN: "1", // 加盟
  COOPERATE: "2", // 合伙
  OPERATION: "3", // 运维
}

// 订单状态
export const OrderStatus = {
  WAIT_PAY: "WAIT_PAY", // 待支付
  PROCESSING: "PROCESSING", // 进行中
  FINISHED: "FINISHED", // 已结束
  CANCELED: "CANCELED", // 已取消
  WAIT_VERIFY: "WAIT_VERIFY", // 待审核
  REJECTED: "REJECTED", // 已驳回
  REFUNDED: "REFUNDED", // 已退款

  // 允许支付的订单状态
  canPay() {
    return [this.WAIT_PAY];
  },
  // 正在使用中的订单状态
  inUse() {
    return [this.PROCESSING];
  },
  // 可以支付成功的订单状态
  canPaySuccess() {
    return [this.WAIT_PAY];
  },
  // 可以结束的订单状态
  canEnd() {
    return [this.PROCESSING];
  },
  // 可以退款的订单状态
  canRefund() {
    return [this.FINISHED, this.REFUNDED, this.REJECTED, this.WAIT_VERIFY];
  },
  // 未支付的订单状态
  unPayList() {
    return [this.WAIT_PAY];
  },
  // 可以取消支付的订单状态
  canCancelPay() {
    return [this.WAIT_PAY];
  },
  // 可以审核的订单状态
  canVerify() {
    return [this.WAIT_VERIFY];
  },
  // 有效的订单状态：已支付的订单
  valid() {
    return [this.PROCESSING, this.FINISHED, this.WAIT_VERIFY, this.REJECTED, this.REFUNDED];
  }
}

// 支付业务类型
export const PayBstType = {
  ORDER: "1", // 订单
}

// 分成业务类型
export const BonusBstType = {
  ORDER: "1", // 订单
}

// 分成到账类型
export const BonusArrivalType = {
  PLATFORM: "PLATFORM", // 平台
  AGENT: "AGENT", // 代理商
  MCH: "MCH", // 运营商
  JOIN: "JOIN", // 加盟商
  PARTNER: "PARTNER", // 合伙人

  // 用户列表
  userList() {
    return [this.AGENT, this.MCH, this.JOIN, this.PARTNER];
  }
}

// 统计数据键值
export const StatKeys = {
  ORDER_USER_COUNT: "order_user_count", // 累计订单用户
  ORDER_COUNT: "order_count", // 订单数量
  ORDER_PAY_AMOUNT: "order_pay_amount", // 订单支付金额
  ORDER_REFUND_AMOUNT: "order_refund_amount", // 订单退款金额
  ORDER_ACTUAL_TOTAL_AMOUNT: "order_actual_total_amount", // 订单总金额


  USER_COUNT: "user_count", // 用户数量


  DEVICE_COUNT: "device_count", // 设备数量
  DEVICE_STATUS_COUNT: "device_status_count", // 设备状态数量
  DEVICE_ONLINE_STATUS_COUNT: "device_online_status_count", // 设备在线状态数量

  STORE_COUNT: "store_count", // 型号数量

  CURRENT_LIGHTING_NUM_COUNT :"CURRENT_LIGHTING_NUM_COUNT", // 爆灯次数
  USER_RECHARGE_AMOUNT : "user_recharge_amount", // 充值金额
  USER_REFUND_AMOUNT :"user_refund_amount" // 退款金额



}

// 收款账户类型
export const AccountType = {
  WX: "WX", // 线下微信
  ALI: "ALI", // 线下支付宝
  BANK: "BANK", // 线下银行卡
  QR: "QR", // 线下收款二维码
}

// 提现状态
// 提现状态
export const WithdrawStatus = {
  WAIT_VERIFY: "WAIT_VERIFY", // 审核中
  PAYING: "PAYING", // 打款中
  SUCCESS: "SUCCESS", // 已打款
  REJECTED: "REJECTED", // 驳回
  FAILED: "FAILED", // 打款失败

  // 可审核的状态列表
  canVerify() {
    return [this.WAIT_VERIFY];
  }
}

// 分成状态
export const BonusStatus = {
  INVALID: "INVALID", // 未出账
  WAIT_DIVIDE: "WAIT_DIVIDE", // 待分成
  DIVIDEND: "DIVIDEND", // 已分成

  // 有效的分成状态列表
  valid() {
    return [this.WAIT_DIVIDE, this.DIVIDEND];
  },

  // 可打款的分成状态列表
  canPay() {
    return [this.WAIT_DIVIDE];
  }
}

// 加盟商申请状态
export const MchApplyStatus = {
  APPROVING: "1", // 审核中
  PASSED: "2", // 审核通过
  REJECTED: "3", // 审核驳回
}

// 故障状态
export const FaultStatus = {
  REJECTED: "0", // 已驳回
  PENGDING: "1", // 待处理
  REPAIRING: "2", // 维修中
  COMPLETED: "3", // 已完成
}

// 提现手续费类型
export const WithdrawServiceType = {
  POINT: "1", // 按比例
  FIXED: "2", // 固定金额
}
