Spaces:
Sleeping
Sleeping
| from datetime import datetime | |
| import sqlalchemy as sa | |
| from sqlalchemy.ext.declarative import declarative_base | |
| from sqlalchemy.orm import sessionmaker | |
| from sqlalchemy import create_engine | |
| import os | |
| Base = declarative_base() | |
| class User(Base): | |
| __tablename__ = 'users' | |
| id = sa.Column(sa.Integer, primary_key=True) | |
| username = sa.Column(sa.String(50), unique=True, nullable=False) | |
| password = sa.Column(sa.String(255), nullable=False) | |
| full_name = sa.Column(sa.String(100)) | |
| email = sa.Column(sa.String(100)) | |
| school = sa.Column(sa.String(100)) | |
| grade = sa.Column(sa.String(20)) | |
| profile_photo = sa.Column(sa.Text) # Store photo as base64 | |
| created_at = sa.Column(sa.DateTime, default=datetime.utcnow) | |
| updated_at = sa.Column(sa.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
| class History(Base): | |
| __tablename__ = 'history' | |
| id = sa.Column(sa.Integer, primary_key=True) | |
| user_id = sa.Column(sa.Integer, sa.ForeignKey('users.id'), nullable=False) | |
| equation = sa.Column(sa.String(255), nullable=False) | |
| solution = sa.Column(sa.Text, nullable=False) | |
| created_at = sa.Column(sa.DateTime, default=datetime.utcnow) | |
| # Database setup | |
| engine = create_engine(os.environ['DATABASE_URL']) | |
| SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) | |
| def init_db(): | |
| Base.metadata.create_all(bind=engine) | |
| def get_db(): | |
| db = SessionLocal() | |
| try: | |
| yield db | |
| finally: | |
| db.close() |