package com.dora.dto.provider;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * AI服务提供商统一响应DTO
 * 
 * @author 1818AI
 * @since 2025-10-20
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProviderTaskResponse {
    
    /** 服务商任务ID（对于异步API必需） */
    private String providerTaskId;
    
    /** 任务提交状态 */
    private TaskSubmitStatus status;
    
    /** 结果URL（如果是同步API且成功） */
    private String resultUrl;
    
    /** 错误消息 */
    private String errorMessage;
    
    /** WebSocket URL（RunningHub特有） */
    private String websocketUrl;
    
    /** 客户端ID（RunningHub特有） */
    private String clientId;
    
    /** 原始响应（用于调试和扩展） */
    private Map<String, Object> rawResponse;
    
    /**
     * 任务提交状态枚举
     */
    public enum TaskSubmitStatus {
        /** 已提交，等待处理 */
        SUBMITTED,
        /** 处理中 */
        PROCESSING,
        /** 已完成（同步API） */
        COMPLETED,
        /** 失败 */
        FAILED
    }
}

