34 lines
774 B
Python
34 lines
774 B
Python
|
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)
|