"""单条消息(仅存 public 可见内容,隔离内部信息)。""" from datetime import datetime from sqlalchemy import String, Text, DateTime, ForeignKey from sqlalchemy.orm import Mapped, mapped_column, relationship from app.models.base import Base class Message(Base): __tablename__ = "messages" id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) session_id: Mapped[int] = mapped_column(ForeignKey("chat_sessions.id", ondelete="CASCADE"), nullable=False, index=True) role: Mapped[str] = mapped_column(String(16), nullable=False) # user / assistant / system content: Mapped[str] = mapped_column(Text, nullable=False) created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=datetime.utcnow) session: Mapped["ChatSession"] = relationship("ChatSession", back_populates="messages")