netadm/models/user.py

24 lines
700 B
Python

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
if TYPE_CHECKING:
from sqlalchemy.ext.asyncio import AsyncSession
class User(Base, IdIntPkMixin, SQLAlchemyBaseUserTable[settings.type.UserIdType]):
name: Mapped[str] = mapped_column(nullable=True)
tg_id: Mapped[int] = mapped_column(BigInteger, nullable=True)
@classmethod
def get_db(cls, session: "AsyncSession"):
return SQLAlchemyUserDatabase(session, cls)