from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import declarative_base from flask_sqlalchemy import SQLAlchemy import uuid Base = declarative_base() db = SQLAlchemy(model_class=Base) class User(Base): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True, autoincrement=True) email = db.Column(db.String(255), unique=True, nullable=False) # Placeholders for Milestone 1 password_hash = db.Column(db.LargeBinary) imap_config = db.Column(db.JSON) # Using db.JSON instead of db.JSONB for compatibility class Folder(Base): __tablename__ = 'folders' id = db.Column(db.Integer, primary_key=True, autoincrement=True) user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) name = db.Column(db.String(255), nullable=False) rule_text = db.Column(db.Text) priority = db.Column(db.Integer) user = db.relationship('User', backref=db.backref('folders', lazy=True))