from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy import BigInteger from config import settings from models import Base from models.mixins import IdIntPkMixin from fastapi_users_db_sqlalchemy import ( SQLAlchemyBaseUserTable, SQLAlchemyUserDatabase, ) from typing import TYPE_CHECKING, Optional if TYPE_CHECKING: from sqlalchemy.ext.asyncio import AsyncSession class User(Base, IdIntPkMixin, SQLAlchemyBaseUserTable[settings.type.UserIdType]): name: Mapped[Optional[str]] = mapped_column(nullable=True) tg_id: Mapped[Optional[int]] = mapped_column(BigInteger, nullable=True) @classmethod def get_db(cls, session: "AsyncSession"): return SQLAlchemyUserDatabase(session, cls)