auth-backend / backend /models.py
yamilogic's picture
Deploy full Auth-System-SMTP frontend and backend together in single space
c425319
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)