Spaces:
Sleeping
Sleeping
| import enum | |
| from datetime import datetime | |
| from sqlalchemy import String, Text, Enum, ForeignKey, DateTime | |
| from sqlalchemy.orm import Mapped, mapped_column, relationship | |
| from app.database import Base | |
| class MessageRole(str, enum.Enum): | |
| USER = "user" | |
| ASSISTANT = "assistant" | |
| class ChatMessage(Base): | |
| __tablename__ = "chat_messages" | |
| id: Mapped[int] = mapped_column(primary_key=True, autoincrement=True) | |
| project_id: Mapped[int] = mapped_column(ForeignKey("projects.id"), nullable=False) | |
| role: Mapped[MessageRole] = mapped_column(Enum(MessageRole), nullable=False) | |
| content: Mapped[str] = mapped_column(Text, nullable=False) | |
| created_at: Mapped[datetime] = mapped_column( | |
| DateTime, default=datetime.utcnow | |
| ) | |
| # Relationships | |
| project = relationship("Project", back_populates="chat_messages") | |