from datetime import datetime, timezone from extensions import db class User(db.Model): __tablename__ = "users" id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(255), unique=True, nullable=False, index=True) password_hash = db.Column(db.String(512), nullable=False) role = db.Column(db.String(50), default="user", nullable=False) is_active = db.Column(db.Boolean, default=True, nullable=False) created_at = db.Column(db.DateTime, default=lambda: datetime.now(timezone.utc)) last_login = db.Column(db.DateTime, nullable=True) def to_dict(self): return { "id": self.id, "email": self.email, "role": self.role, "is_active": self.is_active, "created_at": self.created_at.isoformat(), } def __repr__(self): return f""