Spaces:
Runtime error
Runtime error
| from sqlalchemy import Column, Integer, String, Boolean, ForeignKey, DateTime, UniqueConstraint | |
| from sqlalchemy.orm import relationship | |
| from sqlalchemy.sql import func | |
| from database import Base | |
| class User(Base): | |
| __tablename__ = "users" | |
| id = Column(Integer, primary_key=True, index=True) | |
| email = Column(String, unique=True, index=True, nullable=False) | |
| username = Column(String, unique=True, index=True) | |
| hashed_password = Column(String, nullable=False) | |
| is_active = Column(Boolean, default=True) | |
| is_admin = Column(Boolean, default=False, nullable=False, server_default="false") | |
| sound_effects_enabled = Column(Boolean, default=False) | |
| display_name = Column(String, nullable=True) | |
| favorite_team = Column(String, nullable=True) | |
| banter_level = Column(String, default="Chill", nullable=False) | |
| conversations = relationship("Conversation", back_populates="owner") | |
| global_messages = relationship("GlobalMessage", back_populates="author") # Corrected typo here | |
| reactions = relationship("MessageReaction", back_populates="user", cascade="all, delete-orphan") | |
| class Conversation(Base): | |
| __tablename__ = "conversations" | |
| id = Column(Integer, primary_key=True, index=True) | |
| owner_id = Column(Integer, ForeignKey("users.id")) | |
| created_at = Column(DateTime(timezone=True), server_default=func.now()) | |
| owner = relationship("User", back_populates="conversations") | |
| messages = relationship("Message", back_populates="conversation", cascade="all, delete-orphan") | |
| class Message(Base): | |
| __tablename__ = "messages" | |
| id = Column(Integer, primary_key=True, index=True) | |
| conversation_id = Column(Integer, ForeignKey("conversations.id")) | |
| role = Column(String, nullable=False) | |
| content = Column(String, nullable=False) | |
| created_at = Column(DateTime(timezone=True), server_default=func.now()) | |
| conversation = relationship("Conversation", back_populates="messages") | |
| class GlobalMessage(Base): | |
| __tablename__ = "global_messages" | |
| id = Column(Integer, primary_key=True, index=True) | |
| author_id = Column(Integer, ForeignKey("users.id"), nullable=False) | |
| content = Column(String, nullable=False) | |
| created_at = Column(DateTime(timezone=True), server_default=func.now()) | |
| author = relationship("User", back_populates="global_messages") | |
| reactions = relationship("MessageReaction", back_populates="message", cascade="all, delete-orphan") | |
| class MessageReaction(Base): | |
| __tablename__ = "message_reactions" | |
| id = Column(Integer, primary_key=True, index=True) | |
| message_id = Column(Integer, ForeignKey("global_messages.id"), nullable=False) | |
| user_id = Column(Integer, ForeignKey("users.id"), nullable=False) | |
| emoji = Column(String, nullable=False) | |
| message = relationship("GlobalMessage", back_populates="reactions") | |
| user = relationship("User", back_populates="reactions") | |
| __table_args__ = (UniqueConstraint('message_id', 'user_id', 'emoji', name='_message_user_emoji_uc'),) | |