diff --git a/blueprints/messages/routes.py b/blueprints/messages/routes.py index 06909d1..2820cfb 100644 --- a/blueprints/messages/routes.py +++ b/blueprints/messages/routes.py @@ -669,7 +669,23 @@ def api_unread_count(): q = q.filter(GroupMessage.created_at > m.last_read_at) group_count += q.scalar() or 0 - return jsonify({'count': pm_count + group_count}) + # Conversations unread (new messaging system) + from database import ConversationMember, ConvMessage + conv_count = 0 + conv_memberships = db.query(ConversationMember).filter( + ConversationMember.user_id == current_user.id, + ConversationMember.is_archived == False + ).all() + for cm in conv_memberships: + q = db.query(func.count(ConvMessage.id)).filter( + ConvMessage.conversation_id == cm.conversation_id, + ConvMessage.sender_id != current_user.id + ) + if cm.last_read_at: + q = q.filter(ConvMessage.created_at > cm.last_read_at) + conv_count += q.scalar() or 0 + + return jsonify({'count': pm_count + group_count + conv_count}) finally: db.close()