from app import db class Trigger(db.Model): # Table structure __tablename__ = "triggers" id = db.Column(db.Integer, primary_key=True, autoincrement=True) callback_id = db.Column(db.String(32), db.ForeignKey('callbacks.uuid') ) schedule_id = db.Column(db.Integer, db.ForeignKey('schedules.id') ) trigger_time= db.Column(db.DateTime ) success = db.Column(db.Boolean ) callback = db.relationship("Callback") schedule = db.relationship("Schedule") def __init__(self, callback_id:str, schedule_id:int, trigger_time, success:bool) -> None: self.callback_id = callback_id self.schedule_id = schedule_id self.trigger_time = trigger_time self.success = success def __repr__(self) -> str: return str(self.callback_id) + " triggered at " + str(self.trigger_time) @classmethod def get_trigger(cls, id:int) -> any: result = cls.query.filter_by(id=id).first() if result is not None: return result raise KeyError("ID {} does not exist".format(id)) @classmethod def get_triggers(cls, uuid:str) -> any: result = cls.query.filter_by(callback_id=uuid) if result is not None: return result raise KeyError("UUID {} does not exist".format(uuid)) def delete(self): db.session.delete(self) db.session.commit( ); def save(self): db.session.add (self) db.session.commit( )