feat(chats): add per-user pinned chats and pinned sorting

This commit is contained in:
2026-03-08 09:54:43 +03:00
parent fdf973eeab
commit 8cdcd9531d
9 changed files with 139 additions and 4 deletions

View File

@@ -33,6 +33,7 @@ from app.chats.service import (
serialize_chat_for_user,
serialize_chats_for_user,
set_chat_archived_for_user,
set_chat_pinned_for_user,
update_chat_member_role_for_user,
update_chat_notification_settings_for_user,
update_chat_title_for_user,
@@ -257,3 +258,23 @@ async def unarchive_chat(
) -> ChatRead:
chat = await set_chat_archived_for_user(db, chat_id=chat_id, user_id=current_user.id, archived=False)
return await serialize_chat_for_user(db, user_id=current_user.id, chat=chat)
@router.post("/{chat_id}/pin-chat", response_model=ChatRead)
async def pin_chat(
chat_id: int,
db: AsyncSession = Depends(get_db),
current_user: User = Depends(get_current_user),
) -> ChatRead:
chat = await set_chat_pinned_for_user(db, chat_id=chat_id, user_id=current_user.id, pinned=True)
return await serialize_chat_for_user(db, user_id=current_user.id, chat=chat)
@router.post("/{chat_id}/unpin-chat", response_model=ChatRead)
async def unpin_chat(
chat_id: int,
db: AsyncSession = Depends(get_db),
current_user: User = Depends(get_current_user),
) -> ChatRead:
chat = await set_chat_pinned_for_user(db, chat_id=chat_id, user_id=current_user.id, pinned=False)
return await serialize_chat_for_user(db, user_id=current_user.id, chat=chat)