package org.xyzh.ai.client.dto;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import java.util.Map;

/**
 * @description 工作流执行响应（阻塞模式）
 * @filename WorkflowRunResponse.java
 * @author system
 * @copyright xyzh
 * @since 2026-01-01
 */
@Data
public class WorkflowRunResponse {

    /**
     * 工作流执行ID
     */
    @JSONField(name = "workflow_run_id")
    private String workflowRunId;

    /**
     * 任务ID
     */
    @JSONField(name = "task_id")
    private String taskId;

    /**
     * 工作流执行数据
     */
    private WorkflowData data;

    @Data
    public static class WorkflowData {
        /**
         * 执行ID
         */
        private String id;

        /**
         * 工作流ID
         */
        @JSONField(name = "workflow_id")
        private String workflowId;

        /**
         * 执行状态：running、succeeded、failed、stopped
         */
        private String status;

        /**
         * 工作流输出结果
         */
        private Map<String, Object> outputs;

        /**
         * 错误信息
         */
        private String error;

        /**
         * 执行耗时（秒）
         */
        @JSONField(name = "elapsed_time")
        private Double elapsedTime;

        /**
         * 总Token数
         */
        @JSONField(name = "total_tokens")
        private Integer totalTokens;

        /**
         * 创建时间
         */
        @JSONField(name = "created_at")
        private Long createdAt;

        /**
         * 完成时间
         */
        @JSONField(name = "finished_at")
        private Long finishedAt;
    }
}
