diff --git a/db/models/users.py b/db/models/users.py index d84af5d..7a133eb 100644 --- a/db/models/users.py +++ b/db/models/users.py @@ -37,7 +37,4 @@ class User(Base): "Subscription", back_populates="user", lazy="selectin" ) sessions: Mapped[list["Session"]] = relationship(back_populates="user", lazy="selectin") - referal: Mapped["User | None"] = relationship( - "User", - remote_side=[id], - ) + referal: Mapped["User | None"] = relationship("User", remote_side=[id], lazy="selectin") diff --git a/external/rw.py b/external/rw.py index e92ed99..a35d3cb 100644 --- a/external/rw.py +++ b/external/rw.py @@ -76,10 +76,7 @@ def _parse_user(user_dto) -> RWUserInfo: ) -def _build_rw_username(*, telegram_id: int | None, username: str | None) -> str | None: - if telegram_id is not None: - return f"tg_{telegram_id}" - +def _build_rw_username(*, username: str | None) -> str | None: if not username: return None @@ -439,7 +436,7 @@ async def get_rw_user( rw_user = await get_user_by_telegram_id(sdk, telegram_id) if rw_user is None: - rw_username = _build_rw_username(telegram_id=telegram_id, username=username) + rw_username = _build_rw_username(username=username) if rw_username is None: logger.warning( "Cannot build username for telegram_id=%s username=%s", @@ -450,6 +447,7 @@ async def get_rw_user( rw_user = await get_user_by_username(sdk, rw_username) return rw_user + return rw_user async def sync_subscription_by_telegram_id( @@ -466,7 +464,7 @@ async def sync_subscription_by_telegram_id( rw_user = await get_rw_user(sdk, telegram_id=telegram_id, username=username) if rw_user is None: - rw_username = _build_rw_username(telegram_id=telegram_id, username=username) + rw_username = _build_rw_username(username=username) rw_user = await create_user( sdk=sdk, username=rw_username, diff --git a/repositories/orders.py b/repositories/orders.py index 11f2f02..8f66eef 100644 --- a/repositories/orders.py +++ b/repositories/orders.py @@ -38,6 +38,7 @@ class OrderRepository: self.session.add(addon) await self.session.commit() + await self.session.refresh(order, attribute_names=["addons"]) return order