import request from "@/utils/request.js";
/**
 * 获取工单列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */

export function getTickerList(count, page, status, orderBy, order, userId, keyword, type) {
  const params = { count, page }
  if (status !== undefined && status !== '') params.status = status
  if (orderBy) params.orderBy = orderBy
  if (order) params.order = order
  if (userId) params.user_id = userId
  if (keyword) params.keyword = keyword
  if (type) params.type = type
  return request.get('/api/v1/admin/work_order/list', params)
}

// 待处理
export function getPendingTicketList(count, page) {
  return getTickerList(count,page,0)
}

// 进行中
export function getProcessingTicketList(count, page) {
  return getTickerList(count,page,1)
}

//已回复
export function getRepliedTicketList(count, page) {
  return getTickerList(count,page,2)
}

// 已解决
export function getCompletedTicketList(count, page) {
  return getTickerList(count,page,3)
}

// 获取工单详情
export function getTicketDetail(work_id) {
  return request.get('/api/v1/admin/work_order/detail', { work_id })
}

// 回复工单
export function replyTicket(work_id, content, files) {
  return request.post('/api/v1/admin/work_order/reply', { work_id, content, files }, {
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}

// 关闭工单
export function closeTicket(work_id) {
  return request.post('/api/v1/admin/work_order/close', { work_id }, {
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}

export function getFile(file_id) {
  return request.get('/api/v1/tool/file/down', { file_id })
}

// 获取用户头像
export function getUserAvatar(user_id) {
  // TODO: 实现获取用户头像的逻辑
  return `https://avatar.example.com/${user_id}`
}

// 获取文件图片
export async function getFileImage(file_id) {
  let resp = await getFile(file_id)
  console.log(resp.data.content)
  return resp.data.content
}

// 解析多个文件ID为图片URL数组
export async function parseFilesToImages(files) {
  if (!files || files === '') return []
  
  const fileIds = files.split(',')
  return await Promise.all(fileIds.map(async (id) => await getFileImage(id.trim())))
}

/**获取工单数量 */
export function getTicketCount() {
  return request.get('/api/v1/admin/work_order/count')
}
/**修改工单信息 */
export function updateTicketInfo(data) {
  return request.post('/api/v1/admin/work_order/update', data,{
    headers:{
      'Content-Type':'multipart/form-data'
    }
  })
}
/**添加工单类型 */
export function addTicketType(data) {
  return request.post('/api/v1/admin/work_order/add_type', data,{
    headers:{
      'Content-Type':'multipart/form-data'
    }
  })
}
/**修改工单类型 */
export function updateTicketType(data) {
  return request.post('/api/v1/admin/work_order/update_type', data,{
    headers:{
      'Content-Type':'multipart/form-data'
    }
  })
}
/**删除工单类型 */
export function deleteTicketType(data) {
  return request.delete('/api/v1/admin/work_order/delete_type', {
    data: data,
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}
/**获取工单类型列表 */
export function getTicketTypeList(data) {
  return request.get('/api/v1/admin/work_order/type_list', data)
}
/**修改工单回复信息 */
export function updateTicketReplayInfo(data){
  return request.post('/api/v1/admin/work_order/update_reply',data,{
    headers:{
      'Content-Type':'multipart/form-data'
    }
  })
}

/**获取回复模板列表 */
export function getReplyTemplateList(params = {}) {
  return request.get('/api/v1/admin/work_order/reply_template/list', params)
}

/**创建回复模板 */
export function createReplyTemplate(data) {
  return request.post('/api/v1/admin/work_order/reply_template/create', data, {
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}

/**修改回复模板 */
export function updateReplyTemplate(data) {
  return request.post('/api/v1/admin/work_order/reply_template/update', data, {
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}

/**删除回复模板 */
export function deleteReplyTemplate(data) {
  return request.delete('/api/v1/admin/work_order/reply_template/delete', {
    data: data,
    headers: { 'Content-Type': 'multipart/form-data' }
  })
}
