from CTFd.models import db class CheaterTeams(db.Model): id = db.Column(db.Integer, primary_key=True) challenge_id = db.Column( db.Integer, db.ForeignKey("challenges.id", ondelete="CASCADE") ) cheater_id = db.Column(db.Integer, db.ForeignKey("users.id", ondelete="CASCADE")) helper_id = db.Column(db.Integer, db.ForeignKey("users.id", ondelete="CASCADE")) flag_id = db.Column(db.Integer, db.ForeignKey("flags.id", ondelete="CASCADE")) date = db.Column(db.DateTime, default=db.func.current_timestamp()) # Relationships cheater = db.relationship( "Users", foreign_keys="CheaterTeams.cheater_id", lazy="select" ) helper = db.relationship( "Users", foreign_keys="CheaterTeams.helper_id", lazy="select" ) flag = db.relationship("Flags", foreign_keys="CheaterTeams.flag_id", lazy="select") challenge = db.relationship( "Challenges", foreign_keys="CheaterTeams.challenge_id", lazy="select", ) def __init__( self, challenge_id: int, cheater_id: int, helper_id: int, flag_id: str ): self.challenge_id = challenge_id self.cheater_id = cheater_id self.helper_id = helper_id self.flag_id = flag_id def __repr__(self): return "".format( self.cheater_id, self.challenge_id, self.flag.content, self.helper_id, self.date, )