class TimeDecaySolves(db.Model): __table_args__ = (db.UniqueConstraint('chalid', 'teamid'), {}) id = db.Column(db.Integer, primary_key=True) chalid = db.Column(db.Integer, db.ForeignKey('challenges.id')) teamid = db.Column(db.Integer, db.ForeignKey('teams.id')) decayed_value = db.Column(db.Integer) def __init__(self, chalid, teamid, decayed_value): self.chalid = chalid self.teamid = teamid self.decayed_value = decayed_value def __repr__(self): return '<time-decay-solve {}, {}, {}, {}, {}, {}>'.format(self.id, self.chalid, self.teamid, self.decayed_value)
class Partialsolve(db.Model): __table_args__ = (db.UniqueConstraint('chalid', 'teamid'), {}) id = db.Column(db.Integer, primary_key=True) chalid = db.Column(db.Integer, db.ForeignKey('challenges.id')) teamid = db.Column(db.Integer, db.ForeignKey('teams.id')) ip = db.Column(db.String(46)) flags = db.Column(db.Text) date = db.Column(db.DateTime, default=datetime.datetime.utcnow) # team = db.relationship('Teams', foreign_keys="Solves.teamid", lazy='joined') # chal = db.relationship('Challenges', foreign_keys="Solves.chalid", lazy='joined') def __init__(self, teamid, chalid, ip, flags): self.ip = ip self.chalid = chalid self.teamid = teamid self.flags = flags def __repr__(self): return '<solve {}, {}, {}, {}>'.format(self.teamid, self.chalid, self.ip, self.flags)
class DiscordUser(db.Model): __tablename__ = "discorduser" __table_args__ = (db.UniqueConstraint("id"), {}) # Core variables id = db.Column(db.BigInteger, primary_key=True, unique=True) # Discord ID, int64 # Discord Username 2-32 characters username = db.Column(db.String(128), db.ForeignKey("users.name", ondelete="CASCADE")) discriminator = db.Column(db.Integer) # Discriminator ID, 4 digits avatar_hash = db.Column( db.String(256)) # Avatar hash, no known limit, 33 from samples mfa_enabled = db.Column(db.Boolean) verified = db.Column(db.Boolean) email = db.Column(db.String(256)) def __init__(self, **kwargs): super(DiscordUser, self).__init__(**kwargs)