/**
 * 从服务端刷新打手会员/押金/积分等到 globalData（抢单、考试等页共用）
 */
import request from './request.js';

export async function refreshDashouMembership(app) {
  app = app || getApp();
  try {
    const res = await request({ url: '/yonghu/dashouxinxi', method: 'POST' });
    if (res && res.data && res.data.code == 200) {
      const data = res.data.data || {};
      const clumber = Array.isArray(data.clumber) ? data.clumber : [];
      app.globalData.clumber = clumber;
      if (data.yajin !== undefined) app.globalData.yajin = data.yajin;
      if (data.jifen !== undefined) app.globalData.jinfen = data.jifen;
      if (data.zhanghaostatus !== undefined) app.globalData.zhanghaoStatus = data.zhanghaostatus;
      if (data.dashouzhuangtai !== undefined) app.globalData.dashouzhuangtai = data.dashouzhuangtai;
      return clumber;
    }
  } catch (e) {
    console.error('refreshDashouMembership failed', e);
  }
  return app.globalData.clumber || [];
}

/** 会员 ID 等价比较（001 与 1 视为相同，与后端 huiyuan_ids_match 一致） */
export function huiyuanIdMatch(a, b) {
  const left = String(a ?? '').trim();
  const right = String(b ?? '').trim();
  if (!left || !right) return false;
  if (left === right) return true;
  const leftCore = left.replace(/^0+/, '') || '0';
  const rightCore = right.replace(/^0+/, '') || '0';
  return leftCore === rightCore;
}

/** 用户是否持有某会员类型（与抢单卡片判断一致；支持总会员 included_huiyuan_ids / from_bundle） */
export function userHasHuiyuan(huiyuanList, huiyuanId) {
  if (!huiyuanId && huiyuanId !== 0) return true;
  const list = huiyuanList || [];
  const req = String(huiyuanId);
  return list.some((h) => {
    if (huiyuanIdMatch(h.huiyuanid, req) || huiyuanIdMatch(h.huiyuan_id, req)) {
      return true;
    }
    const covers = h.included_huiyuan_ids || h.covers || [];
    if (Array.isArray(covers) && covers.some((id) => huiyuanIdMatch(id, req))) {
      return true;
    }
    return false;
  });
}
