import api from './index'

/**
 * 获取AI模型列表
 * @param {Object} params - 查询参数
 * @param {string} params.taskType - 任务类型 (text_to_video, image_to_video, storyboard_to_video)
 * @param {string} params.provider - 提供商 (suchuang)
 * @param {boolean} params.enabledOnly - 只获取启用的模型
 */
export const getAIModels = (params) => {
  return api.get('/ai/models', { params })
}

/**
 * 提交AI任务
 * @param {Object} data - 任务数据
 * @param {string} data.modelName - 模型名称
 * @param {string} data.prompt - 提示词
 * @param {string} [data.imageUrl] - 图片URL（图生视频时使用）
 * @param {string} [data.imageBase64] - 图片Base64（图生视频时使用）
 * @param {string} [data.aspectRatio] - 宽高比
 * @param {boolean} [data.imageToVideo] - 是否图生视频
 * @param {string} [data.effectiveImageParam] - 有效图片参数
 */
export const submitAITask = (data) => {
  return api.post('/ai/tasks/submit', data)
}

/**
 * 获取AI任务详情
 * @param {string} taskNo - 任务编号
 */
export const getAITaskDetail = (taskNo) => {
  return api.get(`/ai/tasks/${taskNo}`)
}

/**
 * 获取AI任务列表
 * @param {Object} params - 查询参数
 * @param {number} [params.page] - 页码
 * @param {number} [params.size] - 每页数量
 * @param {string} [params.status] - 任务状态 (pending, processing, completed, failed)
 * @param {string} [params.taskType] - 任务类型 (text_to_video, image_to_video)
 */
export const getAITaskList = (params) => {
  return api.get('/ai/tasks/list', { params })
}

/**
 * 发布作品到广场
 * @param {Object} data - 发布数据
 * @param {string} data.taskNo - 任务编号
 * @param {string} data.title - 作品标题
 * @param {string} data.description - 作品描述
 * @param {Array<string>} data.tags - 作品标签
 * @param {boolean} data.isPublic - 是否公开
 */
export const publishWork = (data) => {
  return api.post('/plaza/works/publish', data)
}

/**
 * 删除AI任务
 * @param {string} taskNo - 任务编号
 */
export const deleteAITask = (taskNo) => {
  return api.delete(`/ai/tasks/delete/${taskNo}`)
}



/**
 * 获取用户发布到广场的作品
 * @param {Object} params - 查询参数
 * @param {number} [params.page] - 页码
 * @param {number} [params.size] - 每页数量
 * @param {string} [params.status] - 作品状态 (pending, processing, completed, failed)
 * @param {string} [params.taskType] - 作品类型 (text_to_video, image_to_video)
 *
 */


export const getUserPublishedWorks = (params) => {
  return api.get(`/plaza/my-works?page=${params.page}&size=${params.size}&status=${params.status}`)
}