Files
Hasscall/app/models/schedule.py
T

62 lines
2.0 KiB
Python

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.Integer, 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 )
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( )