from subprocess import call import uuid from enum import Enum from app import db from app.utils import day_to_string class Schedule(db.Model): # Table structure __tablename__ = "schedules" id = db.Column(db.Integer, primary_key=True, autoincrement=True) callback_id = db.Column(db.String(32), db.ForeignKey('callbacks.uuid') ) name = db.Column(db.String(64) ) start_day = db.Column(db.Integer ) start_time = db.Column(db.Time ) end_day = db.Column(db.Integer ) end_time = db.Column(db.Time ) callback = db.relationship("Callback") def __init__(self, name:str, callback_id:str, startday, starttime, endday, endtime) -> None: self.name = name self.callback_id = callback_id self.start_day = startday self.start_time = starttime self.end_day = endday self.end_time = endtime def __repr__(self) -> str: return str(self.name) + ': ' + self.startday_str() + ' ' + str(self.start_time) + ' - ' + self.endday_str() + ' ' + str(self.end_time) def startday_str(self): return day_to_string(self.start_day) def endday_str(self): return day_to_string(self.end_day) @classmethod def get_schedule(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_schedules(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( )