import api from './request'

/**
 * 创建分镜视频任务
 */
export const createStoryboardTask = async (data) => {
  return api.post('/storyboard-video/create', data)
}

/**
 * 直接使用上传的分镜图创建视频任务（跳过分镜图生成）
 * @param {object} data - 包含 storyboardImage, prompt, aspectRatio, hdMode, duration, referenceImages
 */
export const createVideoDirectTask = async (data) => {
  return api.post('/storyboard-video/create-video-direct', data)
}

/**
 * 获取任务详情
 */
export const getStoryboardTask = async (taskId) => {
  return api.get(`/storyboard-video/task/${taskId}`)
}

/**
 * 获取用户任务列表
 */
export const getUserStoryboardTasks = async (page = 0, size = 10) => {
  return api.get('/storyboard-video/tasks', { params: { page, size } })
}

/**
 * 开始生成视频（从分镜图生成视频）
 * @param {string} taskId - 任务ID
 * @param {object} params - 视频参数（duration, aspectRatio, hdMode）
 */
export const startVideoGeneration = async (taskId, params = {}) => {
  return api.post(`/storyboard-video/task/${taskId}/start-video`, params)
}

/**
 * 拼接多张图片为六宫格（2×3）
 * @param {Array<string>} images - Base64图片数组
 * @param {number} cols - 列数，默认3（2×3布局）
 */
export const mergeImagesToGrid = async (images, cols = 3) => {
  return api.post('/image-grid/merge', { images, cols })
}

/**
 * 重试失败的分镜视频任务
 * @param {string} taskId - 任务ID
 */
export const retryStoryboardTask = async (taskId) => {
  return api.post(`/storyboard-video/task/${taskId}/retry`)
}