zinoubm's picture
initial commit
66340f1
from datetime import datetime
from typing import TYPE_CHECKING, List
from fastapi_users_db_sqlalchemy import (
SQLAlchemyBaseUserTableUUID,
SQLAlchemyBaseOAuthAccountTableUUID,
)
from sqlalchemy import DateTime
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy.sql.functions import func
from app.db import Base
if TYPE_CHECKING:
from app.models.document import Document
class OAuthAccount(SQLAlchemyBaseOAuthAccountTableUUID, Base):
pass
class User(SQLAlchemyBaseUserTableUUID, Base):
__tablename__ = "user"
oauth_accounts: Mapped[List[OAuthAccount]] = relationship(
"OAuthAccount", lazy="joined"
)
created: Mapped[datetime] = mapped_column(
DateTime(timezone=True), server_default=func.now()
)
documents: Mapped["Document"] = relationship(
back_populates="user", cascade="all, delete"
)
def __repr__(self):
return f"User(id={self.id!r}, name={self.email!r})"
# add activated column