/**
 * PostHog 配置文件
 * 请根据实际情况修改以下配置
 */

// 环境判断
const isDev = process.env.NODE_ENV === 'development'

export default {
  // ==================== 基础配置 ====================

  /**
   * PostHog服务器地址
   * 自建实例请替换为您的服务器地址
   * 示例：'https://posthog.yourdomain.com'
   */
  apiHost: 'https://your-posthog-instance.com',

  /**
   * 项目API Key
   * 在PostHog控制台 -> Project Settings -> Project API Key 获取
   */
  apiKey: 'phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',

  /**
   * SDK版本号
   */
  libVersion: '1.0.0',

  /**
   * SDK名称
   */
  libName: 'uniapp-posthog',

  /**
   * 是否启用调试模式
   * 开发环境自动开启，生产环境关闭
   */
  debug: isDev,

  // ==================== 队列配置 ====================

  queue: {
    /**
     * 队列最大长度
     * 达到此数量后自动触发批量上报
     */
    maxSize: 20,

    /**
     * 定时上报间隔（毫秒）
     * 即使未达到maxSize，也会定时上报
     */
    flushInterval: 30000, // 30秒
  },

  // ==================== 请求配置 ====================

  request: {
    /**
     * 请求超时时间（毫秒）
     */
    timeout: 10000, // 10秒

    /**
     * 最大重试次数
     */
    maxRetries: 3,

    /**
     * 重试延迟（毫秒）
     */
    retryDelay: 1000,
  },

  // ==================== 会话配置 ====================

  session: {
    /**
     * 会话超时时间（毫秒）
     * 用户离开超过此时间后，视为新会话
     */
    timeout: 30 * 60 * 1000, // 30分钟
  },

  // ==================== 离线配置 ====================

  offline: {
    /**
     * 离线缓存最大事件数
     * 超过此数量将删除最早的事件
     */
    maxEvents: 100,
  },

  // ==================== 特殊事件配置 ====================

  /**
   * 需要立即上报的事件（不进入队列）
   * 这些事件不会等待队列批量上报，而是立即发送
   */
  immediateEvents: [
    '$identify',
    'session_start',
    'session_end',
    'sys_app_error',
    'api_error',
    'js_error',
  ],

  // ==================== 存储配置 ====================

  /**
   * 存储Key前缀
   * 用于区分不同应用的存储数据
   */
  storagePrefix: 'ph_',

  // ==================== 采样配置 ====================

  /**
   * 事件采样率（0-1）
   * 1 表示100%采集，0.5表示50%采集
   * 可针对不同事件设置不同采样率
   */
  sampling: {
    // 默认采样率
    default: 1,

    // 特定事件采样率
    events: {
      page_scrolled: 0.1,      // 滚动事件只采集10%
      page_load_performance: 0.5, // 性能事件采集50%
    },
  },

  // ==================== 过滤配置 ====================

  /**
   * 属性黑名单
   * 这些属性不会被发送到PostHog
   */
  propertyBlacklist: [
    'password',
    'token',
    'access_token',
    'refresh_token',
    'secret',
  ],

  /**
   * 事件黑名单
   * 这些事件不会被追踪
   */
  eventBlacklist: [],

  // ==================== 隐私配置 ====================

  privacy: {
    /**
     * 是否脱敏手机号
     */
    maskPhone: true,

    /**
     * 是否脱敏IP地址
     */
    maskIP: true,

    /**
     * 敏感字段列表
     */
    sensitiveFields: ['phone', 'email', 'id_card', 'address'],
  },
}