from sqlalchemy import Column, String, ForeignKey from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from app.models.base import Base, TimestampMixin, UUIDMixin class RevokedToken(UUIDMixin, TimestampMixin, Base): """Model to store revoked JWT tokens via their jti (JWT ID).""" __tablename__ = "revoked_tokens" jti = Column(String(length=50), nullable=False, unique=True, index=True) token_type = Column(String(length=20), nullable=False) user_id = Column(UUID(as_uuid=True), ForeignKey("users.id", ondelete="CASCADE")) user = relationship("User", back_populates="revoked_tokens")