import request from '@/utils/request'

// 获取腾讯文档授权URL
export function getTencentDocAuthUrl() {
  return request({
    url: '/jarvis/tendoc/authUrl',
    method: 'get'
  })
}

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

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

// 填充单个订单的物流链接（直接传单号和物流链接）
export function fillSingleLogistics(thirdPartyOrderNo, logisticsLink) {
  return request({
    url: '/jarvis/tendoc/fillSingleLogistics',
    method: 'post',
    data: { thirdPartyOrderNo, logisticsLink }
  })
}

// 批量同步物流链接（从数据库读取订单物流信息并填充到表格）
export function fillLogisticsByOrderNo(data) {
  return request({
    url: '/jarvis/tendoc/fillLogisticsByOrderNo',
    method: 'post',
    data
  })
}

// 获取token状态
export function getTokenStatus() {
  return request({
    url: '/jarvis/tendoc/tokenStatus',
    method: 'get'
  })
}

// 设置token（用于首次授权）
export function setToken(data) {
  return request({
    url: '/jarvis/tendoc/setToken',
    method: 'post',
    data
  })
}

// 追加单个订单物流信息
export function appendLogistics(data) {
  return request({
    url: '/jarvis/tendoc/appendLogistics',
    method: 'post',
    data
  })
}

// 自动发货
export function autoShip(data) {
  return request({
    url: '/jarvis/tendoc/autoShip',
    method: 'post',
    data
  })
}

// 读取表格数据
export function readSheetData(params) {
  return request({
    url: '/jarvis/tendoc/readSheet',
    method: 'get',
    params
  })
}

// 获取文件信息
export function getFileInfo(params) {
  return request({
    url: '/jarvis/tendoc/fileInfo',
    method: 'get',
    params
  })
}

// 获取工作表列表
export function getSheetList(params) {
  return request({
    url: '/jarvis/tendoc/sheetList',
    method: 'get',
    params
  })
}

// 测试获取用户信息
export function testUserInfo() {
  return request({
    url: '/jarvis/tendoc/testUserInfo',
    method: 'get'
  })
}

// ==================== H-TF订单自动写入配置接口 ====================

// 获取自动写入配置
export function getAutoWriteConfig() {
  return request({
    url: '/jarvis/tencentDoc/config',
    method: 'get'
  })
}

// 更新自动写入配置
export function updateAutoWriteConfig(data) {
  return request({
    url: '/jarvis/tencentDoc/config',
    method: 'post',
    data
  })
}

// 测试配置是否有效
export function testAutoWriteConfig() {
  return request({
    url: '/jarvis/tencentDoc/config/test',
    method: 'get'
  })
}

// 清除自动写入配置
export function clearAutoWriteConfig() {
  return request({
    url: '/jarvis/tencentDoc/config',
    method: 'delete'
  })
}

// 获取文档的工作表列表
export function getDocSheetList(fileId) {
  return request({
    url: '/jarvis/tencentDoc/config/sheets',
    method: 'get',
    params: { fileId }
  })
}

// 查询操作日志列表
export function getOperationLogs(params) {
  return request({
    url: '/jarvis/tendoc/operationLogs',
    method: 'get',
    params
  })
}

// 查询最近的操作日志
export function getRecentLogs(params) {
  return request({
    url: '/jarvis/tendoc/recentLogs',
    method: 'get',
    params
  })
}

// ==================== 批量推送记录相关 ====================

/**
 * 获取批量推送记录列表
 */
export function getBatchPushRecords(params) {
  return request({
    url: '/jarvis/tendoc/batchPushRecords',
    method: 'get',
    params
  })
}

/**
 * 获取批量推送记录详情
 */
export function getBatchPushRecordDetail(batchId) {
  return request({
    url: `/jarvis/tendoc/batchPushRecord/${batchId}`,
    method: 'get'
  })
}

/**
 * 获取推送状态和倒计时信息
 */
export function getPushStatus() {
  return request({
    url: '/jarvis/tendoc/pushStatus',
    method: 'get'
  })
}

/**
 * 手动触发立即推送
 */
export function triggerPushNow() {
  return request({
    url: '/jarvis/tendoc/triggerPushNow',
    method: 'post'
  })
}

/**
 * 取消待推送任务
 */
export function cancelPendingPush() {
  return request({
    url: '/jarvis/tendoc/cancelPendingPush',
    method: 'post'
  })
}

/**
 * 反向同步第三方单号
 * 从腾讯文档的物流单号列读取链接，通过链接匹配本地订单，将腾讯文档的单号列值写入到订单的第三方单号字段
 */
export function reverseSyncThirdPartyOrderNo(data) {
  return request({
    url: '/jarvis/tendoc/reverseSyncThirdPartyOrderNo',
    method: 'post',
    data
  })
}

