from typing import TYPE_CHECKING from fastapi_users_db_sqlalchemy.access_token import ( SQLAlchemyAccessTokenDatabase, SQLAlchemyBaseAccessTokenTable, ) from sqlalchemy import ( Integer, ForeignKey, ) from sqlalchemy.orm import ( Mapped, mapped_column, ) from config import settings from .base import Base if TYPE_CHECKING: from sqlalchemy.ext.asyncio import AsyncSession class AccessToken(Base, SQLAlchemyBaseAccessTokenTable[settings.type.UserIdType]): user_id: Mapped[settings.type.UserIdType] = mapped_column( Integer, ForeignKey("users.id", ondelete="cascade"), nullable=False, ) @classmethod def get_db(cls, session: "AsyncSession"): return SQLAlchemyAccessTokenDatabase(session, cls)