29 lines
1.3 KiB
Python
29 lines
1.3 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)
|
|
|
|
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') |