import request from './request'

/**
 * 小说漫剧生成 API（异步模式）
 * 1. 提交任务 → 立即返回 taskId
 * 2. 轮询状态 → 直到 SUCCESS/FAIL
 */

// 创建小说漫剧生成任务（异步提交，秒级返回 taskId）
export const createNovelComicTask = (params) => {
  if (!params.storyBackground || params.storyBackground.trim() === '') {
    throw new Error('故事背景不能为空')
  }
  if (!params.storyScript || params.storyScript.trim() === '') {
    throw new Error('故事文案不能为空')
  }

  const formData = new FormData()
  formData.append('theme', params.theme?.trim() || '')
  formData.append('storyBackground', params.storyBackground.trim())
  formData.append('storyScript', params.storyScript.trim())

  // 背景音乐文件（可选）
  if (params.musicFile) {
    formData.append('backgroundMusic', params.musicFile)
  }

  return request({
    url: '/novel-comic/create',
    method: 'POST',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    },
    timeout: 60000 // 提交本身很快（上传音乐文件可能较慢），1 分钟足够
  })
}

// 查询任务执行状态（轮询用）
export const getNovelComicTaskStatus = (executeId) => {
  return request({
    url: `/novel-comic/status/${executeId}`,
    method: 'GET',
    timeout: 15000
  })
}

// 获取用户的小说漫剧历史列表
export const getNovelComicHistory = (params = {}) => {
  return request({
    url: '/novel-comic/history',
    method: 'GET',
    params: {
      page: params.page || 0,
      size: params.size || 20
    }
  })
}

// 删除历史记录
export const deleteNovelComicHistory = (id) => {
  return request({
    url: `/novel-comic/history/${id}`,
    method: 'DELETE'
  })
}
