class Competitions(db.Model): __tablename__ = 'competitions' id = db.Column(db.Integer, primary_key=True, autoincrement=True) startTime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) isActive = db.Column(db.Boolean, nullable=False, default=True)
class QuestionSequence(db.Model): __tablename__ = 'question_sequence' #__table_args__ = {"schema": "puzzlegame"} # This table stores the question sequence in which the questions needs to be displayed for an user userId = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True, nullable=False) sequence = db.Column(db.String(80))
class SubmissionDetails(db.Model): __tablename__ = 'submission_details' submissionId = db.Column(db.Integer, primary_key=True, nullable=False, autoincrement=True) userId = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) questionNum = db.Column(db.Integer) submittedAnswer = db.Column(db.String(80)) submissionTime = db.Column(db.DateTime, nullable=True, default=datetime.datetime.now)
class Leaderboard(db.Model): __tablename__ = 'leaderboard' #__table_args__ = {"schema": "puzzlegame"} userId = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True, nullable=False) marks = db.Column(db.Float, nullable=False, default=0.0) marks2 = db.Column(db.Integer, nullable=False, default=0.0) milestoneCount = db.Column(db.Integer, nullable=False, default=0) milestoneAchieveTime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now)
class Users(db.Model): __tablename__ = 'users' #__table_args__ = {"schema": "puzzlegame" id = db.Column(db.Integer, primary_key=True) firstName = db.Column(db.String(80), nullable=False) familyName = db.Column(db.String(80)) pin = db.Column(db.Integer, nullable=False) isAdmin = db.Column(db.Boolean, nullable=False, default=False) submissions = db.relationship('Submissions', backref='users', lazy='dynamic') marks = db.relationship('Leaderboard', backref='users', lazy='dynamic') avatar = db.Column(db.String(200))
class Submissions(db.Model): __tablename__ = 'submissions' #__table_args__ = {"schema": "puzzlegame"} userId = db.Column(db.Integer, db.ForeignKey('users.id'), primary_key=True, nullable=False) questionNum = db.Column(db.Integer, nullable=False, primary_key=True) isSolved = db.Column(db.Boolean, nullable=False, default=False) appearingTime = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now) submissionTime = db.Column(db.DateTime, nullable=True) submissionCount = db.Column(db.Integer, nullable=False, default=0)