import uuid from sqlalchemy import ForeignKey, String, Text from sqlalchemy.dialects.postgresql import JSONB, UUID from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database import Base class Message(Base): __tablename__ = "messages" chat_id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), ForeignKey("chats.id", ondelete="CASCADE"), nullable=False, index=True ) role: Mapped[str] = mapped_column(String(20), nullable=False) content: Mapped[str] = mapped_column(Text, nullable=False) metadata_: Mapped[dict | None] = mapped_column("metadata", JSONB, nullable=True) chat: Mapped["Chat"] = relationship(back_populates="messages") # noqa: F821