netadm/models/user.py

24 lines
730 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, 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)