From e5bda99e5162a6e782fa0e5c901986bf0a68f589 Mon Sep 17 00:00:00 2001 From: 1AhmedYasser <26207361+1AhmedYasser@users.noreply.github.com> Date: Fri, 6 Mar 2026 13:12:18 +0200 Subject: [PATCH] fix(677): Fixed Status test handling --- DSL/Resql/analytics/POST/status-all-chats.sql | 28 +++++++++++++------ DSL/Resql/analytics/POST/status-csa-chats.sql | 28 +++++++++++++------ 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/DSL/Resql/analytics/POST/status-all-chats.sql b/DSL/Resql/analytics/POST/status-all-chats.sql index 573daa7a..03259e9e 100644 --- a/DSL/Resql/analytics/POST/status-all-chats.sql +++ b/DSL/Resql/analytics/POST/status-all-chats.sql @@ -1,4 +1,15 @@ -WITH latest_messages AS ( +WITH latest_chats AS ( + SELECT DISTINCT ON (chat.base_id) + chat.base_id, + chat.ended, + chat.status, + chat.end_user_url, + chat.test + FROM chat + WHERE chat.ended::timestamptz BETWEEN :start::timestamptz AND :end::timestamptz + ORDER BY chat.base_id, chat.created DESC +), +latest_messages AS ( SELECT DISTINCT ON (message.chat_base_id) message.chat_base_id, message.event @@ -7,21 +18,20 @@ WITH latest_messages AS ( ORDER BY message.chat_base_id, message.created DESC ) SELECT - date_trunc(:metric, chat.ended) AS date_time, + date_trunc(:metric, lc.ended) AS date_time, lm.event AS event, - COUNT(DISTINCT chat.base_id) -FROM chat + COUNT(DISTINCT lc.base_id) AS count +FROM latest_chats lc JOIN latest_messages lm - ON chat.base_id = lm.chat_base_id -WHERE chat.status = 'ENDED' + ON lc.base_id = lm.chat_base_id +WHERE lc.status = 'ENDED' AND ( array_length(ARRAY[:urls]::TEXT[], 1) IS NULL - OR chat.end_user_url LIKE ANY(ARRAY[:urls]::TEXT[]) + OR lc.end_user_url LIKE ANY(ARRAY[:urls]::TEXT[]) ) AND ( :showTest = TRUE - OR chat.test = FALSE + OR lc.test = FALSE ) - AND chat.ended::timestamptz BETWEEN :start::timestamptz AND :end::timestamptz GROUP BY date_time, event ORDER BY event; diff --git a/DSL/Resql/analytics/POST/status-csa-chats.sql b/DSL/Resql/analytics/POST/status-csa-chats.sql index 394eb10f..1b30ea7b 100644 --- a/DSL/Resql/analytics/POST/status-csa-chats.sql +++ b/DSL/Resql/analytics/POST/status-csa-chats.sql @@ -1,4 +1,15 @@ -WITH latest_messages AS ( +WITH latest_chats AS ( + SELECT DISTINCT ON (chat.base_id) + chat.base_id, + chat.ended, + chat.status, + chat.end_user_url, + chat.test + FROM chat + WHERE chat.ended::timestamptz BETWEEN :start::timestamptz AND :end::timestamptz + ORDER BY chat.base_id, chat.created DESC +), +latest_messages AS ( SELECT DISTINCT ON (message.chat_base_id) message.chat_base_id, message.event @@ -8,21 +19,20 @@ WITH latest_messages AS ( ORDER BY message.chat_base_id, message.created DESC ) SELECT - date_trunc(:metric, chat.ended) AS date_time, + date_trunc(:metric, lc.ended) AS date_time, lm.event AS event, - COUNT(DISTINCT chat.base_id) -FROM chat + COUNT(DISTINCT lc.base_id) AS count +FROM latest_chats lc JOIN latest_messages lm - ON chat.base_id = lm.chat_base_id -WHERE chat.status = 'ENDED' + ON lc.base_id = lm.chat_base_id +WHERE lc.status = 'ENDED' AND ( array_length(ARRAY[:urls]::TEXT[], 1) IS NULL - OR chat.end_user_url LIKE ANY(ARRAY[:urls]::TEXT[]) + OR lc.end_user_url LIKE ANY(ARRAY[:urls]::TEXT[]) ) AND ( :showTest = TRUE - OR chat.test = FALSE + OR lc.test = FALSE ) - AND chat.ended::timestamptz BETWEEN :start::timestamptz AND :end::timestamptz GROUP BY date_time, event ORDER BY event;