from sqlalchemy import Column, Integer, String, Text, Boolean, DateTime, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.sql import func from app.models.base import Base class GameEvent(Base): __tablename__ = "game_events" id = Column(Integer, primary_key=True, index=True) session_id = Column(Integer, ForeignKey("game_sessions.id"), nullable=False) event_type = Column(String(50), nullable=False) # question_selected, answer_submitted, steal_attempted, etc. player_name = Column(String(100)) team = Column(String(1)) # 'A' or 'B' question_id = Column(Integer, ForeignKey("questions.id")) answer_given = Column(Text) was_correct = Column(Boolean) was_steal = Column(Boolean, default=False) points_earned = Column(Integer) timestamp = Column(DateTime(timezone=True), server_default=func.now()) # Relationships session = relationship("GameSession", back_populates="events") question = relationship("Question", back_populates="game_events") def __repr__(self): return f""