File size: 942 Bytes
7d9e142 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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"<User {self.email}>"
|