from collections import deque
from config import MAX_HISTORY_TURNS


class ConversationMemory:
    """Almacena el historial de conversación por sesión en memoria."""

    def __init__(self):
        self._sessions: dict[str, deque] = {}

    def add_turn(self, session_id: str, role: str, content: str) -> None:
        if session_id not in self._sessions:
            self._sessions[session_id] = deque(maxlen=MAX_HISTORY_TURNS)

        self._sessions[session_id].append({"role": role, "content": content})

    def get_history(self, session_id: str) -> list[dict]:
        if session_id not in self._sessions:
            return []
        return list(self._sessions[session_id])

    def clear_session(self, session_id: str) -> None:
        self._sessions.pop(session_id, None)
