import request from '@/utils/request'

// ==================== OAuth授权相关 ====================

/**
 * 获取WPS365授权URL
 */
export function getWPS365AuthUrl(state) {
  return request({
    url: '/jarvis/wps365/authUrl',
    method: 'get',
    params: { state }
  })
}

/**
 * OAuth回调获取访问令牌
 */
export function getWPS365AccessToken(code) {
  return request({
    url: '/jarvis/wps365/oauth/callback',
    method: 'get',
    params: { code }
  })
}

/**
 * 刷新访问令牌
 */
export function refreshWPS365Token(data) {
  return request({
    url: '/jarvis/wps365/refreshToken',
    method: 'post',
    data
  })
}

/**
 * 获取token状态
 */
export function getWPS365TokenStatus(userId) {
  return request({
    url: '/jarvis/wps365/tokenStatus',
    method: 'get',
    params: { userId }
  })
}

/**
 * 设置token（用于手动授权）
 */
export function setWPS365Token(data) {
  return request({
    url: '/jarvis/wps365/setToken',
    method: 'post',
    data
  })
}

// ==================== 用户信息相关 ====================

/**
 * 获取用户信息
 */
export function getWPS365UserInfo(userId) {
  return request({
    url: '/jarvis/wps365/userInfo',
    method: 'get',
    params: { userId }
  })
}

// ==================== 文件相关 ====================

/**
 * 获取文件列表
 */
export function getWPS365FileList(params) {
  return request({
    url: '/jarvis/wps365/files',
    method: 'get',
    params
  })
}

/**
 * 获取文件信息
 */
export function getWPS365FileInfo(userId, fileToken) {
  return request({
    url: '/jarvis/wps365/fileInfo',
    method: 'get',
    params: { userId, fileToken }
  })
}

// ==================== 工作表相关 ====================

/**
 * 获取工作表列表
 */
export function getWPS365SheetList(userId, fileToken) {
  return request({
    url: '/jarvis/wps365/sheets',
    method: 'get',
    params: { userId, fileToken }
  })
}

/**
 * 创建数据表
 */
export function createWPS365Sheet(data) {
  return request({
    url: '/jarvis/wps365/createSheet',
    method: 'post',
    data
  })
}

// ==================== 单元格操作相关 ====================

/**
 * 读取单元格数据
 */
export function readWPS365Cells(params) {
  return request({
    url: '/jarvis/wps365/readCells',
    method: 'get',
    params
  })
}

/**
 * 更新单元格数据
 */
export function updateWPS365Cells(data) {
  return request({
    url: '/jarvis/wps365/updateCells',
    method: 'post',
    data
  })
}

/**
 * 批量更新单元格数据
 */
export function batchUpdateWPS365Cells(data) {
  return request({
    url: '/jarvis/wps365/batchUpdateCells',
    method: 'post',
    data
  })
}

// ==================== AirSheet相关 ====================

/**
 * 读取AirSheet工作表数据
 * @param {Object} params - {userId, fileId, worksheetId(可选，默认0), range(可选)}
 */
export function readWPS365AirSheetCells(params) {
  return request({
    url: '/jarvis/wps365/readAirSheetCells',
    method: 'get',
    params
  })
}

/**
 * 更新AirSheet工作表数据
 * @param {Object} data - {userId, fileId, worksheetId(可选，默认0), range, values}
 */
export function updateWPS365AirSheetCells(data) {
  return request({
    url: '/jarvis/wps365/updateAirSheetCells',
    method: 'post',
    data
  })
}

