Files
bloodpressure/app/models.py
2024-12-28 01:11:11 +11:00

30 lines
1.4 KiB
Python

from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin
from app import db
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(255), nullable=False, unique=True)
password_hash = db.Column(db.Text, nullable=False)
profile = db.relationship('Profile', backref='user', uselist=False)
class Profile(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
name = db.Column(db.String(100))
email = db.Column(db.String(150), unique=True)
profile_pic = db.Column(db.Text) # Store image as a base64 string
systolic_threshold = db.Column(db.Integer, default=140)
diastolic_threshold = db.Column(db.Integer, default=90)
dark_mode = db.Column(db.Boolean, default=False)
timezone = db.Column(db.String(50), default='UTC') # e.g., 'Australia/Sydney'
class Reading(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
timestamp = db.Column(db.DateTime, nullable=False)
systolic = db.Column(db.Integer, nullable=False)
diastolic = db.Column(db.Integer, nullable=False)
heart_rate = db.Column(db.Integer, nullable=False)
user = db.relationship('User', backref='readings')