harshnarayan12's picture
Upload 29 files
5177e12 verified
from sqlalchemy import create_engine, Column, Integer, String, DateTime, Boolean, Float, Text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from werkzeug.security import generate_password_hash, check_password_hash
from datetime import datetime
import secrets
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String(80), unique=True, nullable=False)
email = Column(String(120), unique=True, nullable=False)
password_hash = Column(String(255), nullable=False)
full_name = Column(String(100))
created_at = Column(DateTime, default=datetime.utcnow)
last_login = Column(DateTime)
is_active = Column(Boolean, default=True)
is_verified = Column(Boolean, default=False)
# Profile completion status
has_completed_initial_survey = Column(Boolean, default=False)
initial_survey_date = Column(DateTime)
# Session management
session_token = Column(String(255))
def set_password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
def generate_session_token(self):
self.session_token = secrets.token_urlsafe(32)
return self.session_token
# Create database
engine = create_engine('sqlite:///mental_health_app.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)