package tech.easyflow.admin.dto.chatworkspace;

import tech.easyflow.chatlog.domain.dto.ChatMessageRecord;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * 管理端聊天工作台完整会话视图。
 */
public class ChatWorkspaceConversationView implements Serializable {

    private long total;
    private List<ChatMessageRecord> records = new ArrayList<>();
    private Map<String, List<ChatMessageRecord>> variantsByRound = new LinkedHashMap<>();

    /**
     * 获取当前主线可见消息数量。
     *
     * @return 主线消息数量
     */
    public long getTotal() {
        return total;
    }

    /**
     * 设置当前主线可见消息数量。
     *
     * @param total 主线消息数量
     */
    public void setTotal(long total) {
        this.total = total;
    }

    /**
     * 获取当前主线可见消息。
     *
     * @return 当前主线可见消息
     */
    public List<ChatMessageRecord> getRecords() {
        return records;
    }

    /**
     * 设置当前主线可见消息。
     *
     * @param records 当前主线可见消息
     */
    public void setRecords(List<ChatMessageRecord> records) {
        this.records = records == null ? new ArrayList<>() : records;
    }

    /**
     * 获取按轮次分组的全部答案版本。
     *
     * @return roundId 到答案版本列表的映射
     */
    public Map<String, List<ChatMessageRecord>> getVariantsByRound() {
        return variantsByRound;
    }

    /**
     * 设置按轮次分组的全部答案版本。
     *
     * @param variantsByRound roundId 到答案版本列表的映射
     */
    public void setVariantsByRound(Map<String, List<ChatMessageRecord>> variantsByRound) {
        this.variantsByRound = variantsByRound == null ? new LinkedHashMap<>() : variantsByRound;
    }
}
