import { request } from '@/utils/request'

/**
 * 管理員相關 API
 */
export const adminAPI = {
  /**
   * 取得系統統計資訊
   * @param {string} period - 統計週期 (day/week/month/year)
   */
  getStats(period = 'month') {
    return request.get('/admin/stats', { params: { period } })
  },
  
  /**
   * 取得所有使用者任務
   * @param {Object} params - 查詢參數
   */
  getAllJobs(params = {}) {
    const defaultParams = {
      page: 1,
      per_page: 50,
      user_id: 'all',
      status: 'all'
    }
    return request.get('/admin/jobs', { params: { ...defaultParams, ...params } })
  },
  
  /**
   * 取得使用者列表
   */
  getUsers() {
    return request.get('/admin/users')
  },
  
  /**
   * 取得使用者詳細資訊
   * @param {number} userId - 使用者 ID
   */
  getUserDetail(userId) {
    return request.get(`/admin/users/${userId}`)
  },
  
  /**
   * 更新使用者狀態
   * @param {number} userId - 使用者 ID
   * @param {Object} data - 更新資料
   */
  updateUser(userId, data) {
    return request.put(`/admin/users/${userId}`, data)
  },
  
  /**
   * 取得 API 使用統計
   * @param {Object} params - 查詢參數
   */
  getApiUsageStats(params = {}) {
    return request.get('/admin/api-usage', { params })
  },
  
  /**
   * 取得系統日誌
   * @param {Object} params - 查詢參數
   */
  getSystemLogs(params = {}) {
    const defaultParams = {
      page: 1,
      per_page: 100,
      level: 'all'
    }
    return request.get('/admin/logs', { params: { ...defaultParams, ...params } })
  },
  
  /**
   * 取得成本報表
   * @param {Object} params - 查詢參數
   */
  getCostReport(params = {}) {
    return request.get('/admin/cost-report', { params })
  },
  
  /**
   * 匯出報表
   * @param {string} type - 報表類型
   * @param {Object} params - 查詢參數
   */
  exportReport(type, params = {}) {
    return request.get(`/admin/export/${type}`, {
      params,
      responseType: 'blob'
    })
  },
  
  /**
   * 系統健康檢查
   */
  getSystemHealth() {
    return request.get('/admin/health')
  },
  
  /**
   * 取得系統指標
   */
  getSystemMetrics() {
    return request.get('/admin/metrics')
  },
  
  /**
   * 清理舊檔案
   */
  cleanupOldFiles() {
    return request.post('/admin/cleanup')
  }
}