Добрый день, есть две таблицы, одна с пользователями, другая куда пишется последнее обращение к сервису. Есть следующие модели:
class Base(AsyncAttrs, DeclarativeBase):
pass
class TimestampMixin(object):
created_at: Mapped[datetime] = mapped_column(
insert_default=datetime.utcnow
)
updated_at: Mapped[datetime] = mapped_column(
default=datetime.utcnow,
onupdate=datetime.utcnow
)
class User(Base, TimestampMixin):
__tablename__ = 'users'
id: Mapped[UUID] = mapped_column(UUID(as_uuid=True), primary_key=True,
default=uuid.uuid4)
login: Mapped[str] = mapped_column(unique=True)
name: Mapped[str] = mapped_column(String(15))
onlines: Mapped[List["UserOnline"]] = relationship(
cascade="all, delete-orphan"
)
def __str__(self) -> str:
return f"id: {self.id}\n"
class UserOnline(Base, TimestampMixin):
__tablename__ = "users_onlines"
id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
user_id: Mapped[int] = mapped_column(ForeignKey("users.id"))
user: Mapped["User"] = relationship(back_populates="onlines")
Могу ли я, создать у класса User поле, которое при выполнение select, будет считать последний онлайн пользователя? Чтобы я мог к нему обратиться по типу
last_online = user.last_online