package com.sonic.cow.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sonic.common.auth.domains.Session;
import com.sonic.cow.domain.entity.GenImageTask;
import com.sonic.cow.domain.input.GenImageCallbackInput;
import com.sonic.cow.domain.input.GenImageInput;
import com.sonic.cow.domain.output.GenImageListOutput;
import com.sonic.cow.domain.output.GenImageOutput;

import java.util.List;

/**
 * 生成图片任务
 * @author code
 */
public interface GenImageTaskService extends IService<GenImageTask> {

    /**
     * 生成图片
     * @param session
     * @param input
     * @return
     */
    GenImageOutput genImage(Session session, GenImageInput input);

    /**
     * 查询图片生成结果
     * @param userId
     * @param batchNo
     * @return
     */
    List<GenImageListOutput> getImage(Long userId, String batchNo);

    /**
     * 图片生成成功的回调
     * @param input
     */
    void genImageCallback(GenImageCallbackInput input);

    /**
     * 删除图片生成任务
     * @param userId
     * @param batchNo
     */
    void delGenImageTask(Long userId, String batchNo);

    /**
     * 扫描心跳过期的数据进行释放处理
     * @return
     */
    Integer scanHeartBeatExpTime();

}
