From a7bdeb6248587e73a9dcbbf022fc2f6d24e9e418 Mon Sep 17 00:00:00 2001 From: Mike Conrad Date: Wed, 28 May 2025 15:51:16 -0400 Subject: [PATCH] Fix formatting --- app/models/replay.ts | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/app/models/replay.ts b/app/models/replay.ts index 16b804f..8e43f49 100644 --- a/app/models/replay.ts +++ b/app/models/replay.ts @@ -14,7 +14,9 @@ export default class Replay extends BaseModel { u.average_session_time_readable, u.average_time_seconds, r.id AS last_session_id, - r.finished_at AS last_session_time + r.finished_at AS last_session_time, + o.id AS oldest_session_id, + o.finished_at AS oldest_session_time FROM ( -- Aggregate sessions in the last 30 days @@ -38,6 +40,8 @@ export default class Replay extends BaseModel { WHERE finished_at >= NOW() - INTERVAL '30 days' AND "user" ->> 'display_name' LIKE '%@%' + AND "user" ->> 'display_name' !~ 'e2etesting|@paragontruss.com' + GROUP BY "user" ->> 'display_name' ) u @@ -47,14 +51,29 @@ export default class Replay extends BaseModel { SELECT id, finished_at FROM replays WHERE "user" ->> 'display_name' = u.display_name + AND "user" ->> 'display_name' LIKE '%@%' + AND "user" ->> 'display_name' !~ 'e2etesting|@paragontruss.com' ORDER BY CASE WHEN finished_at >= NOW() - INTERVAL '30 days' THEN 0 ELSE 1 END, finished_at DESC LIMIT 1 ) r ON true + -- LATERAL JOIN to get the oldest session + JOIN LATERAL ( + SELECT id, finished_at + FROM replays + WHERE "user" ->> 'display_name' = u.display_name + AND "user" ->> 'display_name' LIKE '%@%' + AND "user" ->> 'display_name' !~ 'e2etesting|@paragontruss.com' + ORDER BY finished_at ASC + LIMIT 1 + ) o ON true + ORDER BY - u.total_time_seconds DESC;`) + u.total_time_seconds DESC; + + `) const updatedVersion = await redis.incr('replays:stats:latest_version') results.version = updatedVersion results.updatedAt = Date.now()