/**
 * 传入单个商品信息，通过商品上是否有 duration 或者 schedule.ids 来判断是否是普通商品
 *
 * @export
 * @param {ProductData} product
 * @return {*}  {boolean}
 */
export function isNormalProduct(product) {
  var _product$scheduleIds;
  // 如果有 duration 配置，则不是普通商品
  if (product !== null && product !== void 0 && product.duration) {
    return false;
  }

  // 如果有 schedule.ids 且长度大于0，则不是普通商品
  if (product !== null && product !== void 0 && (_product$scheduleIds = product['schedule.ids']) !== null && _product$scheduleIds !== void 0 && _product$scheduleIds.length) {
    return false;
  }

  // 既没有 duration 也没有 schedule.ids，则是普通商品
  return true;
}

/**
 * 传入多个商品信息，确定这些商品是否都是普通商品
 *
 * @export
 * @param {ProductData[]} products
 * @return {*}  {boolean}
 */
export function areAllNormalProducts(products) {
  // 如果数组为空，返回 true
  if (!products.length) {
    return false;
  }

  // 检查所有商品是否都是普通商品
  return products.every(function (product) {
    return isNormalProduct(product);
  });
}