fix(chats): prevent duplicate saved messages entries in chat list
Some checks failed
CI / test (push) Failing after 1m57s

This commit is contained in:
2026-03-08 21:13:40 +03:00
parent af3c5bd79e
commit 926413534b
3 changed files with 116 additions and 3 deletions

View File

@@ -60,7 +60,11 @@ def _user_chats_query(user_id: int, query: str | None = None) -> Select[tuple[Ch
ChatUserSetting,
(ChatUserSetting.chat_id == Chat.id) & (ChatUserSetting.user_id == user_id),
)
.where(ChatMember.user_id == user_id, func.coalesce(ChatUserSetting.archived, False).is_(False))
.where(
ChatMember.user_id == user_id,
func.coalesce(ChatUserSetting.archived, False).is_(False),
Chat.is_saved.is_(False),
)
)
if query and query.strip():
q = f"%{query.strip()}%"
@@ -162,6 +166,7 @@ async def find_saved_chat_for_user(db: AsyncSession, *, user_id: int) -> Chat |
select(Chat)
.join(ChatMember, ChatMember.chat_id == Chat.id)
.where(ChatMember.user_id == user_id, Chat.is_saved.is_(True))
.order_by(Chat.id.asc())
.limit(1)
)
result = await db.execute(stmt)