feat(audit): add kinds param to findRolledUpActivityFeed

Filter is applied at the innermost events CTE to reduce rows
entering the LAG/session CTEs. Existing callers pass ROLLUP_ELIGIBLE
by default so behaviour is unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-04-21 20:59:56 +02:00
parent d700b0a948
commit fe7a8ed9ad
4 changed files with 109 additions and 20 deletions

View File

@@ -5,6 +5,7 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.time.OffsetDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@@ -35,8 +36,7 @@ public interface AuditLogQueryRepository extends JpaRepository<AuditLog, UUID> {
ORDER BY a.happened_at
) AS prev_happened_at
FROM audit_log a
WHERE a.kind IN ('TEXT_SAVED','FILE_UPLOADED','ANNOTATION_CREATED',
'BLOCK_REVIEWED','COMMENT_ADDED','MENTION_CREATED')
WHERE a.kind IN (:kinds)
AND a.document_id IS NOT NULL
),
sessions_marked AS (
@@ -108,7 +108,8 @@ public interface AuditLogQueryRepository extends JpaRepository<AuditLog, UUID> {
""", nativeQuery = true)
List<ActivityFeedRow> findRolledUpActivityFeed(
@Param("currentUserId") String currentUserId,
@Param("limit") int limit);
@Param("limit") int limit,
@Param("kinds") Collection<String> kinds);
@Query(value = """
SELECT

View File

@@ -17,7 +17,8 @@ public class AuditLogQueryService {
}
public List<ActivityFeedRow> findActivityFeed(UUID currentUserId, int limit) {
return queryRepository.findRolledUpActivityFeed(currentUserId.toString(), limit);
return queryRepository.findRolledUpActivityFeed(currentUserId.toString(), limit,
AuditKind.ROLLUP_ELIGIBLE.stream().map(Enum::name).toList());
}
public PulseStatsRow getPulseStats(OffsetDateTime weekStart, UUID userId) {