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

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

import java.time.LocalDateTime;

/**
 * 会话信息响应 DTO。
 */
@Getter
public class SessionResponse {

    /**
     * 会话 ID。
     */
    private final String sessionId;
    /**
     * 用户标识。
     */
    private final String userId;
    /**
     * 聊天机器人 ID。
     */
    private final String chatbotId;
    /**
     * 会话状态：active / completed / abandoned。
     */
    private final String status;
    /**
     * 会话标题。
     */
    private final String title;
    /**
     * 当前活跃线程 ID。
     */
    private final String activeThreadId;
    /**
     * 是否已标记清除上下文待生效。
     */
    private final boolean contextResetPending;
    /**
     * 创建时间。
     */
    private final LocalDateTime createdAt;

    /**
     * 从 Session 实体构建响应。
     *
     * @param session 会话实体
     */
    public SessionResponse(Session session) {
        this.sessionId = session.getId();
        this.userId = session.getUserId();
        this.chatbotId = session.getChatBotId();
        this.status = session.getStatus();
        this.title = session.getTitle();
        this.activeThreadId = session.getActiveThreadId();
        this.contextResetPending = session.isContextResetPending();
        this.createdAt = session.getCreatedAt();
    }
}
