From 7d8b25e6f859d0bd1e6114dcebe7450728697901 Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Mon, 9 Oct 2023 11:50:59 +0200 Subject: [PATCH] feat(api): top-members data --- api/chalicelib/core/assist_stats.py | 6 +++++- api/schemas/schemas.py | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/api/chalicelib/core/assist_stats.py b/api/chalicelib/core/assist_stats.py index 8cc112e6b..67b3b35b5 100644 --- a/api/chalicelib/core/assist_stats.py +++ b/api/chalicelib/core/assist_stats.py @@ -308,7 +308,11 @@ def get_top_members( CASE WHEN '{sort_by}' = 'sessionsAssisted' THEN SUM(CASE WHEN ae.event_type = 'assist' THEN 1 ELSE 0 END) ELSE SUM(CASE WHEN ae.event_type <> 'assist' THEN ae.duration ELSE 0 END) - END AS count + END AS count, + SUM(CASE WHEN ae.event_type = 'assist' THEN ae.duration ELSE 0 END) AS assist_duration, + SUM(CASE WHEN ae.event_type = 'call' THEN ae.duration ELSE 0 END) AS call_duration, + SUM(CASE WHEN ae.event_type = 'control' THEN ae.duration ELSE 0 END) AS control_duration, + SUM(CASE WHEN ae.event_type = 'assist' THEN 1 ELSE 0 END) AS assist_count FROM assist_events ae JOIN users u ON u.user_id = ae.agent_id WHERE {' AND '.join(f'ae.{constraint}' for constraint in constraints)} diff --git a/api/schemas/schemas.py b/api/schemas/schemas.py index bfd8982f7..72ebfc972 100644 --- a/api/schemas/schemas.py +++ b/api/schemas/schemas.py @@ -1620,6 +1620,10 @@ class AssistStatsAverage(BaseModel): class AssistStatsMember(BaseModel): name: str count: int + assist_duration: Optional[int] = Field(default=0) + call_duration: Optional[int] = Field(default=0) + control_duration: Optional[int] = Field(default=0) + assist_count: Optional[int] = Field(default=0) class AssistStatsSessionAgent(BaseModel):