"""
This program has been developed by students from the bachelor Computer Science at Utrecht
University within the Software Project course.
© Copyright Utrecht University (Department of Information and Computing Sciences)
"""

from pydantic import BaseModel


class ChatMessage(BaseModel):
    """
    Represents a single message in a conversation.

    :ivar role: The role of the speaker (e.g., 'user', 'assistant').
    :ivar content: The text content of the message.
    """

    role: str
    content: str


class ChatHistory(BaseModel):
    """
    Represents a sequence of chat messages, forming a conversation history.

    :ivar messages: An ordered list of :class:`ChatMessage` objects.
    """

    messages: list[ChatMessage]
