"""In-Memory-Session-Speicher für den MVP.

Hält pro session_id den Gesprächsverlauf. Bewusst simpel (Dict);
für Produktion später SQLite/Redis — Schnittstelle bleibt gleich.
"""
from __future__ import annotations

from collections import defaultdict
from typing import Dict, List

# session_id -> Liste von {"role": "child"|"plappi", "text": str}
_SESSIONS: Dict[str, List[dict]] = defaultdict(list)


def history(session_id: str) -> List[dict]:
    return _SESSIONS[session_id]


def add_turn(session_id: str, role: str, text: str) -> None:
    _SESSIONS[session_id].append({"role": role, "text": text})


def reset(session_id: str) -> None:
    _SESSIONS.pop(session_id, None)


def recent(session_id: str, n: int) -> List[dict]:
    return _SESSIONS[session_id][-n:]
