// MSW 浏览器端配置
import { setupWorker } from 'msw/browser'
import { handlers } from './handlers'

// 创建 Service Worker 实例
export const worker = setupWorker(...handlers)

// 启动 Mock 服务
export const startMockService = async () => {
  if (import.meta.env.VITE_USE_MOCK !== 'true') {
    console.log('🔌 Mock API 已禁用，使用真实后端')
    return
  }

  try {
    await worker.start({
      onUnhandledRequest: 'bypass', // 不拦截未定义的请求
      serviceWorker: {
        url: '/mockServiceWorker.js',
      },
    })
    
    console.log('🎭 Mock API 已启动')
    console.log('📝 可用的 Mock 账号: admin / admin123')
    
    // 在控制台暴露 worker 便于调试
    if (import.meta.env.DEV) {
      ;(window as any).__mswWorker = worker
      console.log('💡 可通过 window.__mswWorker 访问 MSW Worker')
    }
  } catch (error) {
    console.error('❌ Mock API 启动失败:', error)
  }
}

// 停止 Mock 服务
export const stopMockService = () => {
  worker.stop()
  console.log('🔴 Mock API 已停止')
}

// 重置所有处理器
export const resetHandlers = () => {
  worker.resetHandlers()
  console.log('🔄 Mock 处理器已重置')
}

// 添加临时处理器（用于测试特定场景）
export const addTempHandler = (handler: any) => {
  worker.use(handler)
  console.log('➕ 已添加临时 Mock 处理器')
}

