diff --git a/src/Simplex/Chat/Store.hs b/src/Simplex/Chat/Store.hs index 7f40a62ae0..8d72ab3b8e 100644 --- a/src/Simplex/Chat/Store.hs +++ b/src/Simplex/Chat/Store.hs @@ -461,13 +461,29 @@ getUsersInfo db = getUsers db >>= mapM getUserInfo where getUserInfo :: User -> IO UserInfo getUserInfo user@User {userId} = do - count_ <- + ctCount <- maybeFirstRow fromOnly $ DB.query db - "SELECT COUNT(1) FROM chat_items WHERE user_id = ? AND item_status = ? GROUP BY user_id" + [sql| + SELECT COUNT(1) + FROM chat_items i + JOIN contacts ct USING (contact_id) + WHERE i.user_id = ? AND i.item_status = ? AND (ct.enable_ntfs = 1 OR ct.enable_ntfs IS NULL) + |] (userId, CISRcvNew) - pure UserInfo {user, unreadCount = fromMaybe 0 count_} + gCount <- + maybeFirstRow fromOnly $ + DB.query + db + [sql| + SELECT COUNT(1) + FROM chat_items i + JOIN groups g USING (group_id) + WHERE i.user_id = ? AND i.item_status = ? AND (g.enable_ntfs = 1 OR g.enable_ntfs IS NULL) + |] + (userId, CISRcvNew) + pure UserInfo {user, unreadCount = fromMaybe 0 ctCount + fromMaybe 0 gCount} getUsers :: DB.Connection -> IO [User] getUsers db =