package vip.mate.tool.image;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* Provider 提交图片生成任务的结果
*
* 与视频不同,图片 Provider 分同步和异步两种:
* - 同步(async=false):submit 时已完成生成,imageUrls 直接包含结果
* - 异步(async=true):返回 providerTaskId,需后续轮询
*
* @author MateClaw Team
*/
@Data
@Builder
public class ImageSubmitResult {
/** 是否被接受 */
private boolean accepted;
/** true=异步需轮询, false=同步已完成 */
private boolean async;
/** 提交的 provider 名称 */
private String providerName;
/** 异步模式:provider 返回的任务 ID */
private String providerTaskId;
/** 同步模式:直接返回的图片 URL 列表 */
private List imageUrls;
/** 错误信息(仅 accepted=false 时) */
private String errorMessage;
public static ImageSubmitResult syncSuccess(String providerName, List imageUrls) {
return ImageSubmitResult.builder()
.accepted(true)
.async(false)
.providerName(providerName)
.imageUrls(imageUrls)
.build();
}
public static ImageSubmitResult asyncSuccess(String providerTaskId, String providerName) {
return ImageSubmitResult.builder()
.accepted(true)
.async(true)
.providerName(providerName)
.providerTaskId(providerTaskId)
.build();
}
public static ImageSubmitResult failure(String providerName, String errorMessage) {
return ImageSubmitResult.builder()
.providerName(providerName)
.accepted(false)
.errorMessage(errorMessage)
.build();
}
}