38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
from app import db
|
|
import json
|
|
|
|
|
|
class Day(db.Model):
|
|
day_id = db.Column(db.Integer, primary_key=True)
|
|
date = db.Column(db.Date, unique=True)
|
|
note = db.Column(db.String)
|
|
hours = db.relationship("Hour", backref="day")
|
|
|
|
def __repr__(self):
|
|
return '<Day: {}>'.format(self.date.strftime("%x"))
|
|
|
|
def toJson(self):
|
|
return json.dumps(self, default=lambda o: o.__dict__)
|
|
|
|
|
|
class Activity(db.Model):
|
|
activity_id = db.Column(db.Integer, primary_key=True)
|
|
code = db.Column(db.Integer, unique=True)
|
|
name = db.Column(db.String)
|
|
hours = db.relationship("Hour", backref="activity")
|
|
color = db.Column(db.String)
|
|
|
|
def __repr__(self):
|
|
return "<Activity {} ({})>".format(self.code, self.name)
|
|
|
|
|
|
class Hour(db.Model):
|
|
hour_id = db.Column(db.Integer, primary_key=True)
|
|
time = db.Column(db.Integer)
|
|
day_id = db.Column(db.Integer, db.ForeignKey("day.day_id"))
|
|
note = db.Column(db.String)
|
|
activity_code = db.Column(db.Integer, db.ForeignKey("activity.code"))
|
|
|
|
def __repr__(self):
|
|
return "<Hour {} of day {}>".format(self.time, self.day_id)
|