package com.easyagents.agent.runtime.tool.asynctool;

import java.time.Instant;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 异步工具任务摘要。
 */
public class AsyncToolTaskSummary {

    private String taskId;
    private AsyncToolTaskStatus status;
    private String summary;
    private Instant createdAt;
    private Instant updatedAt;
    private Map<String, Object> payload = new LinkedHashMap<>();

    /**
     * 创建空任务摘要。
     */
    public AsyncToolTaskSummary() {
    }

    /**
     * 获取任务 ID。
     *
     * @return 任务 ID
     */
    public String getTaskId() {
        return taskId;
    }

    /**
     * 设置任务 ID。
     *
     * @param taskId 任务 ID
     */
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    /**
     * 获取任务状态。
     *
     * @return 任务状态
     */
    public AsyncToolTaskStatus getStatus() {
        return status;
    }

    /**
     * 设置任务状态。
     *
     * @param status 任务状态
     */
    public void setStatus(AsyncToolTaskStatus status) {
        this.status = status;
    }

    /**
     * 获取任务摘要。
     *
     * @return 任务摘要
     */
    public String getSummary() {
        return summary;
    }

    /**
     * 设置任务摘要。
     *
     * @param summary 任务摘要
     */
    public void setSummary(String summary) {
        this.summary = summary;
    }

    /**
     * 获取创建时间。
     *
     * @return 创建时间
     */
    public Instant getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置创建时间。
     *
     * @param createdAt 创建时间
     */
    public void setCreatedAt(Instant createdAt) {
        this.createdAt = createdAt;
    }

    /**
     * 获取更新时间。
     *
     * @return 更新时间
     */
    public Instant getUpdatedAt() {
        return updatedAt;
    }

    /**
     * 设置更新时间。
     *
     * @param updatedAt 更新时间
     */
    public void setUpdatedAt(Instant updatedAt) {
        this.updatedAt = updatedAt;
    }

    /**
     * 获取业务扩展载荷。
     *
     * @return 业务扩展载荷
     */
    public Map<String, Object> getPayload() {
        return payload;
    }

    /**
     * 设置业务扩展载荷。
     *
     * @param payload 业务扩展载荷
     */
    public void setPayload(Map<String, Object> payload) {
        this.payload = payload == null ? new LinkedHashMap<>() : payload;
    }
}
