A single message within a conversation.
| 50 | |
| 51 | |
| 52 | class ConversationMessage(Base): |
| 53 | """A single message within a conversation.""" |
| 54 | __tablename__ = "conversation_messages" |
| 55 | |
| 56 | id = Column(Integer, primary_key=True, index=True) |
| 57 | conversation_id = Column(Integer, ForeignKey("conversations.id"), nullable=False, index=True) |
| 58 | role = Column(String(20), nullable=False) # "user" | "assistant" | "system" |
| 59 | content = Column(Text, nullable=False) |
| 60 | timestamp = Column(DateTime, default=_utc_now) |
| 61 | |
| 62 | conversation = relationship("Conversation", back_populates="messages") |
| 63 | |
| 64 | |
| 65 | def get_db_path(project_dir: Path) -> Path: |