diff --git a/backend/src/main/java/org/raddatz/familienarchiv/audit/AuditLogQueryRepository.java b/backend/src/main/java/org/raddatz/familienarchiv/audit/AuditLogQueryRepository.java index 59e930d3..8a559cb6 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/audit/AuditLogQueryRepository.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/audit/AuditLogQueryRepository.java @@ -70,7 +70,8 @@ public interface AuditLogQueryRepository extends JpaRepository { CASE WHEN COUNT(*) > 1 THEN MAX(s.happened_at) ELSE NULL END AS happened_at_until, COUNT(*)::int AS count, BOOL_OR(s.kind = 'MENTION_CREATED' - AND s.payload->>'mentionedUserId' = :currentUserId) AS you_mentioned + AND s.payload->>'mentionedUserId' = :currentUserId) AS you_mentioned, + MIN(s.payload::text)::jsonb AS payload FROM sessions s GROUP BY s.kind, s.actor_id, s.document_id, s.session_id ) @@ -89,6 +90,13 @@ public interface AuditLogQueryRepository extends JpaRepository { ag.document_id AS documentId, ag.happened_at AS happened_at, ag.you_mentioned AS youMentioned, + -- payload->>'commentId' matches notifications.reference_id per AuditKind.COMMENT_ADDED contract + EXISTS( + SELECT 1 FROM notifications n + WHERE n.type = 'REPLY' + AND n.recipient_id = CAST(:currentUserId AS uuid) + AND n.reference_id = (ag.payload->>'commentId')::uuid + ) AS youParticipated, ag.count AS count, ag.happened_at_until AS happenedAtUntil FROM aggregated ag