package com.infoepoch.pms.agent.platform.chat.application.dto;

import com.infoepoch.pms.agent.platform.chat.domain.ChatMessageBlock;
import com.infoepoch.pms.agent.platform.chat.domain.Conversation;
import lombok.Getter;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 对话历史中单条消息的响应 DTO。
 */
@Getter
public class ConversationResponse {

    /**
     * 消息 ID。
     */
    private final String id;
    /**
     * 消息角色：user / assistant / tool。
     */
    private final String role;
    /**
     * 消息内容。
     */
    private final String content;
    /**
     * 创建时间。
     */
    private final LocalDateTime createdAt;
    /**
     * 上下文线程 ID。
     */
    private final String threadId;
    /**
     * 结构化消息块。
     */
    private final List<ChatMessageBlock> blocks;

    /**
     * 从 Conversation 实体构建响应。
     *
     * @param conversation 对话消息实体
     */
    public ConversationResponse(Conversation conversation) {
        this.id = conversation.getId();
        this.role = conversation.getRole();
        this.content = conversation.getContent();
        this.createdAt = conversation.getCreatedAt();
        this.threadId = conversation.getThreadId();
        this.blocks = conversation.getBlocks();
    }
}
