package com.ruoyi.ai.service;

import com.ruoyi.ai.domain.ByteBodyReq;
import com.ruoyi.ai.domain.ByteBodyRes;
import com.ruoyi.common.core.domain.AjaxResult;

public interface IByteService {

    /**
     * 文生图
     */
    ByteBodyRes promptToImg(ByteBodyReq req) throws Exception;

    /**
     * 图生图
     */
    ByteBodyRes imgToImg(ByteBodyReq req) throws Exception;

    /**
     * 首尾帧图生视频（使用全局配置的 Ark API Key）
     */
    ByteBodyRes imgToVideo(ByteBodyReq req) throws Exception;

    /**
     * 视频生成任务创建（指定 Ark API Key，门户按部门密钥调用）
     */
    ByteBodyRes imgToVideo(ByteBodyReq req, String arkApiKey) throws Exception;

    /**
     * 下载视频
     */
    ByteBodyRes uploadVideo(String id) throws Exception;

    ByteBodyRes uploadVideo(String id, String arkApiKey) throws Exception;

    /**
     * 取消视频生成任务
     */
    AjaxResult cancelVideoTask(String id) throws Exception;

    AjaxResult cancelVideoTask(String id, String arkApiKey) throws Exception;

    /**
     * GET 查询视频生成任务列表（火山 list 文档），返回原始 JSON 字符串
     */
    String listVideoGenerationTasks(int pageNum, int pageSize, String arkApiKey) throws Exception;
}
