import request from '@/config/axios'

// AI 视频 VO
export interface VideoVO {
  id: number // 编号
  platform: string // 平台
  model: string // 模型
  prompt: string // 提示词
  promptVideo: string // 提示词
  width: number // 图片宽度
  height: number // 图片高度
  status: number // 状态
  publicStatus: boolean // 公开状态
  videoUrl: string // 任务地址
  errorMessage: string // 错误信息
  options: any // 配置 Map<string, string>
  taskId: number // 任务编号
  createTime: Date // 创建时间
  finishTime: Date // 完成时间
  tenantId: Number // 租户id
}

export interface VideoDrawReqVO {
  prompt: string // 提示词
  modelId: number // 模型
  style: string // 图像生成的风格
  width: string // 图片宽度
  height: string // 图片高度
  options: object // 绘制参数，Map<String, String>
}

// AI 图片 API
export const VideoApi = {
  // 获取【我的】视频分页
  getVideoPageMy: async (params: any) => {
    return await request.get({ url: `/ai/video/my-page`, params })
  },
  // 获取【我的】视频记录
  getVideoMy: async (id: number) => {
    return await request.get({ url: `/ai/video/get-my?id=${id}` })
  },
  // 获取【我的】视频记录列表
  getVideoListMyByIds: async (ids: number[]) => {
    return await request.get({ url: `/ai/video/my-list-by-ids`, params: { ids: ids.join(',') } })
  },
  // 生成图片
  drawVideo: async (data: VideoDrawReqVO) => {
    return await request.post({ url: `/ai/video/draw`, data })
  },
  // 删除【我的】视频记录
  deleteVideoMy: async (id: number) => {
    return await request.delete({ url: `/ai/video/delete-my?id=${id}` })
  },

  // ================ 视频管理 ================

  // 查询视频分页
  getVideoPage: async (params: any) => {
    return await request.get({ url: `/ai/video/page`, params })
  },

  // 更新视频发布状态
  updateVideo: async (data: any) => {
    return await request.put({ url: '/ai/video/update', data })
  },

  // 删除视频
  deleteVideo: async (id: number) => {
    return await request.delete({ url: `/ai/video/delete?id=` + id })
  }
}
