package com.sonic.cow.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sonic.cow.domain.entity.GenImageTask;
import com.sonic.cow.domain.entity.GenImageTaskRecord;
import com.sonic.cow.domain.output.GenImageListOutput;

import java.util.List;

/**
 * 生成图片任务子项表
 *
 * @author code
 */
public interface GenImageTaskRecordService extends IService<GenImageTaskRecord> {

    /**
     * 保存明细数据
     *
     * @param genImageTask
     * @param taskIdList
     */
    void saveRecord(GenImageTask genImageTask, List<String> taskIdList);

    /**
     * 根据图片生成任务的Id获取基础数据
     *
     * @param runPodTaskId
     * @return
     */
    GenImageTaskRecord getByThirdTaskId(String runPodTaskId);

    /**
     * 生成图片完成，更新数据库状态和url
     *
     * @param id
     * @param imageUrl
     * @param status
     * @return
     */
    void genImageCompleted(Long id, String imageUrl, String status, String prompt, String asyncTaskId, String failReason, Integer type);

    /**
     * 根据任务ID查询已完成图片生成的总数
     *
     * @param taskId
     * @return
     */
    Integer queryCompletedTaskCountByTaskId(Long taskId);

    /**
     * 根据任务ID查询已完成图片生成的总数
     *
     * @param batchNo
     * @return
     */
    Integer queryCompletedTaskCountByBatchNo(String batchNo);

    /**
     * 根据批次号查询所有基础信息
     *
     * @param batchNo
     * @return
     */
    List<GenImageListOutput> queryByBatchNo(String batchNo);

    /**
     * 根据图片url获取对应 prompt
     *
     * @param userId
     * @param imageUrl
     * @return
     */
    String getInitPromptByImageUrl(Long userId, String imageUrl);

    /**
     * 添加相册图片，背景图片，ai形象图时，检查图片是否是AI生成的
     */
    void checkImageIsAIGenerated(Long userId, List<String> imgUrlList);
}
