package com.ai.da.service;

import com.ai.da.mapper.primary.entity.Generate;
import com.ai.da.mapper.primary.entity.GenerateDetail;
import com.ai.da.model.dto.GenerateLikeDTO;
import com.ai.da.model.dto.GenerateThroughImageTextDTO;
import com.ai.da.model.vo.GenerateCaptionVO;
import com.ai.da.model.vo.GenerateCollectionVO;
import com.ai.da.model.vo.GenerateLikeVO;
import com.ai.da.model.vo.PrepareForGenerateVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface GenerateService extends IService<Generate> {

    GenerateCaptionVO generateCaption(Long sketchElementId);

    GenerateCollectionVO generateThroughImageText(GenerateThroughImageTextDTO generateThroughImageTextDTO);

    GenerateLikeVO generateLike(GenerateLikeDTO generateLikeDTO);

    Boolean generateDislike(Long generateDetailId, String timeZone);

    void updateLikeStatusBatch(List<Long> generateDetailIdList, Byte hasLike, Long libraryId, String timeZone);

    List<GenerateDetail> selectBatchByLibraryId(List<Long> libraryId);

    GenerateCollectionVO getGenerateResult(String uniqueId);

    PrepareForGenerateVO prepareForGenerate(GenerateThroughImageTextDTO generateThroughImageTextDTO);

    Long getRankPosition(String uniqueId);

    void cancelGenerate(Long userId, String uniqueId, String timeZone);

}
