System15 / backend /models.py
yamilogic's picture
Deploy SMTP Auth System to Hugging Face Space
50535d1
Raw
History Blame Contribute Delete
1.2 kB
from sqlalchemy import Column, Integer, String, Boolean, DateTime
from datetime import datetime
from database import Base
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
username = Column(String, unique=True, index=True, nullable=False)
email = Column(String, unique=True, index=True, nullable=False)
password = Column(String, nullable=False)
is_active = Column(Boolean, default=True)
role = Column(String, default="user")
created_at = Column(DateTime, default=datetime.utcnow)
# ─── Verification Columns for SMTP Flow ───
is_verified = Column(Boolean, default=False) # must be True before login is allowed
verification_code = Column(String, nullable=True) # stores the active registration OTP code
reset_code = Column(String, nullable=True) # stores the active forgot password OTP code
class RevokedToken(Base):
__tablename__ = "revoked_tokens"
id = Column(Integer, primary_key=True, index=True)
token = Column(String, unique=True, index=True, nullable=False)
revoked_at = Column(DateTime, default=datetime.utcnow)
expires_at = Column(DateTime, nullable=False)