from app import db
from datetime import datetime
 
 
class BlacklistToken:
    def __init__(self, jti, user_id, created_at=None):
        self.jti = jti
        self.user_id = user_id
        self.created_at = created_at or datetime.utcnow()

    @classmethod
    def add(cls, jti, user_id):
        """
        Add a token to the blacklist.
        """
        token_data = {"jti": jti, "user_id": user_id, "created_at": datetime.utcnow()}
        db.blacklist_tokens.insert_one(token_data)

    @classmethod
    def is_blacklisted(cls, jti):
        """
        Check if a token is blacklisted.
        """
        return db.blacklist_tokens.find_one({"jti": jti}) is not None

    @classmethod
    def remove(cls, jti):
        """
        Remove a token from the blacklist (if needed).
        """
        db.blacklist_tokens.delete_one({"jti": jti})