from typing import Optional

from pydantic import BaseModel


class ConversationMemoryUnit(BaseModel):
    role: str
    content: str
    timestamp: str
    memory_id: str
    conversation_id: str
    embedding: Optional[
        list[float]
    ] = None  # Optional for Oracle VECTOR (NULL vs empty list)
    agent_id: Optional[str] = None
    recall_recency: Optional[float] = None
    associated_conversation_ids: Optional[list[str]] = None
