File size: 1,116 Bytes
8eaa451 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | """
MediGenius — models/message.py
SQLAlchemy ORM model for chat messages.
"""
from datetime import datetime
from typing import Dict
from sqlalchemy import Column, DateTime, Integer, String, Text
from sqlalchemy.orm import declarative_base
Base = declarative_base()
class Message(Base):
"""Persisted chat message (user or assistant turn)."""
__tablename__ = "messages"
id = Column(Integer, primary_key=True, autoincrement=True)
session_id = Column(String(255), nullable=False, index=True)
role = Column(String(50), nullable=False) # "user" | "assistant"
content = Column(Text, nullable=False)
source = Column(String(255), nullable=True) # e.g. "Wikipedia Medical Information"
timestamp = Column(DateTime, default=datetime.utcnow, nullable=False)
def to_dict(self) -> Dict:
return {
"id": self.id,
"session_id": self.session_id,
"role": self.role,
"content": self.content,
"source": self.source,
"timestamp": self.timestamp.isoformat() if self.timestamp else None,
}
|