""" Options: Date: 2025-05-04 22:29:04 Version: 8.71 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://team.evovoice.io #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: GetCallCenterDashboard.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ import datetime import decimal from marshmallow.fields import * from servicestack import * from typing import * from dataclasses import dataclass, field from dataclasses_json import dataclass_json, LetterCase, Undefined, config from enum import Enum, IntEnum @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CallCenterDashboardAgent: id: Optional[str] = None name: Optional[str] = None queues: Optional[List[str]] = None agent_state: Optional[str] = None call_state: Optional[str] = None sign_in_time: Optional[str] = None sign_in_duration: Optional[str] = None percent_available: Optional[str] = None avg_busy_in: Optional[str] = None avg_wrap_up: Optional[str] = None date_of_last_call: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CallCenterDashboardQueue: name: Optional[str] = None num_agents: int = 0 num_calls_queued: int = 0 longest_waiting_call: Optional[str] = None expected_wait_time: Optional[str] = None expected_hold_time: Optional[str] = None average_speed_of_answer: Optional[str] = None idle_agents: int = 0 unavailable_agents: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CallCenterDashboardCall: id: Optional[str] = None customer: Optional[str] = None queue: Optional[str] = None agent: Optional[str] = None state: Optional[str] = None duration: Optional[str] = None hold: Optional[str] = None extra_info: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CallCenterDashboard: agents: Optional[List[CallCenterDashboardAgent]] = None queues: Optional[List[CallCenterDashboardQueue]] = None calls: Optional[List[CallCenterDashboardCall]] = None # @Route("/dashboard/call-center", "GET") # @Api(Description="Returns the call center dashboard data") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetCallCenterDashboard(IReturn[CallCenterDashboard], IPost): """ Returns the call center dashboard data """ # @ApiMember(Description="The account ID to retrieve for") account_id: Optional[str] = None """ The account ID to retrieve for """