
export enum SEX {
  '男' = 1,
  '女' = 2,
}
export enum MapType {
  AMAP = 'amap',
  BAIDU = 'baidu',
  TENCENT = 'qq',
  APPLE = 'apple',
  GOOGLE = 'google' // 新增 Google Maps
}

interface MapLocation {
  lat: number;
  lng: number;
  name?: string; // 目的地名称
}

export function isRunningStandalone() {
    // 兼容 iOS Safari
    if ((window as any).navigator.standalone === true) {
        return true;
    }
    // 兼容其他浏览器（如 Android Chrome）
    if (window.matchMedia('(display-mode: standalone)').matches) {
        return true;
    }
    return false;
}

export const isMobile = (): boolean => {
  const ua = navigator.userAgent;
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua);
};

/**
 * 调起 Web 版地图 (直接使用原始坐标，不进行纠偏转换)
 */
export const openWebMapRaw = (type: MapType, location: MapLocation): void => {
  const { lat, lng, name = 'Location' } = location;
  const encodedName = encodeURIComponent(name);

  let url = '';

  switch (type) {
    case MapType.GOOGLE:
      /**
       * Google Maps Web API
       * 使用 query 参数标注位置
       */
      url = `https://www.google.com/maps/search/?api=1&query=${lat},${lng}`;
      break;

    case MapType.AMAP:
      /**
       * 高德 Web 标注
       * coordinate=wgs84 声明输入的是原始 GPS 坐标
       * position 参数顺序为 [经度, 纬度]
       */
      url = `https://uri.amap.com/marker?position=${lng},${lat}&name=${encodedName}&coordinate=wgs84&callnative=0`;
      break;

    case MapType.BAIDU:
      /**
       * 百度 Web 标注
       * coord_type=wgs84 声明输入的是原始 GPS 坐标
       */
      url = `http://api.map.baidu.com/marker?location=${lat},${lng}&title=${encodedName}&content=${encodedName}&coord_type=wgs84&output=html&src=webapp`;
      break;

    case MapType.TENCENT:
      /**
       * 腾讯 Web 标注
       * 腾讯 Web API 目前对 wgs84 直接支持较弱，通常默认 gcj02，
       * 但在 Web 端直接传坐标，系统会尝试解析。
       */
      url = `https://apis.map.qq.com/uri/v1/marker?marker=coord:${lat},${lng};title:${encodedName}&referer=myapp`;
      break;

    case MapType.APPLE:
      /**
       * Apple Maps Web
       * ll: 经纬度, q: 标注点名称
       */
      url = `https://maps.apple.com/?ll=${lat},${lng}&q=${encodedName}`;
      break;
  }

  if (url) {
    window.open(url, '_blank');
  }
};


export const AUTH_CALLBACK_URL = `${window.location.origin}/auth/callback`;
export const USER_CENTER_URL = `${window.location.origin}/user-center`;
export const isNotificationSupport = () => Boolean(window.Notification);