/* Options: Date: 2025-05-04 23:43:46 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: GetActiveSessions.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class SessionInfo extends EntityInfo implements IConvertible { /** * The state of the session */ // @ApiMember(Description="The state of the session") SessionDialState? dialState; /** * The call state of the session */ // @ApiMember(Description="The call state of the session") SessionCallState? callState; /** * The queue state of the session */ // @ApiMember(Description="The queue state of the session") SessionQueueStates? queueState; /** * The ID of the account associated with the flow */ // @ApiMember(Description="The ID of the account associated with the flow") String? accountId; /** * The name of the account associated with the session */ // @ApiMember(Description="The name of the account associated with the session") String? accountName; /** * The ID of the customer this session is associated with */ // @ApiMember(Description="The ID of the customer this session is associated with") String? customerId; /** * The customer breadcrumb this session is associated with */ // @ApiMember(Description="The customer breadcrumb this session is associated with") List? customerBreadcrumb; /** * The name of the customer this session is associated with */ // @ApiMember(Description="The name of the customer this session is associated with") String? customerName; /** * The ID of the endpoint associated with this session */ // @ApiMember(Description="The ID of the endpoint associated with this session") String? endpointId; /** * The name of the endpoint associated with this session */ // @ApiMember(Description="The name of the endpoint associated with this session") String? endpointName; /** * The date the call completed */ // @ApiMember(Description="The date the call completed") String? dateCompleted; /** * The destination of the session (e.g. what was entered into the Dial box) */ // @ApiMember(Description="The destination of the session (e.g. what was entered into the Dial box)") String? destination; /** * The to address if any */ // @ApiMember(Description="The to address if any") String? toAddress; /** * The from address if any */ // @ApiMember(Description="The from address if any") String? fromAddress; /** * The from name if any */ // @ApiMember(Description="The from name if any") String? fromName; /** * Answered by name (if any) */ // @ApiMember(Description="Answered by name (if any)") String? answeredByName; /** * The ID of the queue member assigned to this call */ // @ApiMember(Description="The ID of the queue member assigned to this call") String? queueMemberId; /** * The flow channel */ // @ApiMember(Description="The flow channel") FlowChannels? channel; /** * Has the session ended */ // @ApiMember(Description="Has the session ended") bool? ended; /** * The outcome of the call */ // @ApiMember(Description="The outcome of the call") String? outcome; /** * The twilio Call SID of this session */ // @ApiMember(Description="The twilio Call SID of this session") String? callSid; /** * Any console data for this session */ // @ApiMember(Description="Any console data for this session") String? consoleData; /** * The name of the hold queue for this call */ // @ApiMember(Description="The name of the hold queue for this call") String? holdQueueName; /** * The user ID who put this call on hold */ // @ApiMember(Description="The user ID who put this call on hold") String? heldByUserId; /** * The reason for the hold */ // @ApiMember(Description="The reason for the hold") SessionHoldReasons? holdReason; /** * The SID of the conference if in a conference call */ // @ApiMember(Description="The SID of the conference if in a conference call") String? conferenceSid; /** * The display name for this session */ // @ApiMember(Description="The display name for this session") String? displayName; /** * The log entries for this session */ // @ApiMember(Description="The log entries for this session") List? log; /** * The members of this session */ // @ApiMember(Description="The members of this session") List? members; /** * The callback number (typically used for SIP to User calls) */ // @ApiMember(Description="The callback number (typically used for SIP to User calls)") String? callbackNumber; /** * The ID of the endpoint that answered */ // @ApiMember(Description="The ID of the endpoint that answered") String? answeredById; /** * Is this session incoming or outgoing? */ // @ApiMember(Description="Is this session incoming or outgoing?") SessionDirections? direction; /** * The phone number that this session is coming from (used with SMS chats) */ // @ApiMember(Description="The phone number that this session is coming from (used with SMS chats)") String? fromPhoneNumber; /** * The Call SID of the most recently added conference participant */ // @ApiMember(Description="The Call SID of the most recently added conference participant") String? mostRecentParticipantCallSid; /** * Was this session missed? */ // @ApiMember(Description="Was this session missed?") bool? wasMissed; /** * The ring queue that the call is currently in */ // @ApiMember(Description="The ring queue that the call is currently in") String? ringQueueId; SessionInfo({this.dialState,this.callState,this.queueState,this.accountId,this.accountName,this.customerId,this.customerBreadcrumb,this.customerName,this.endpointId,this.endpointName,this.dateCompleted,this.destination,this.toAddress,this.fromAddress,this.fromName,this.answeredByName,this.queueMemberId,this.channel,this.ended,this.outcome,this.callSid,this.consoleData,this.holdQueueName,this.heldByUserId,this.holdReason,this.conferenceSid,this.displayName,this.log,this.members,this.callbackNumber,this.answeredById,this.direction,this.fromPhoneNumber,this.mostRecentParticipantCallSid,this.wasMissed,this.ringQueueId}); SessionInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); dialState = JsonConverters.fromJson(json['dialState'],'SessionDialState',context!); callState = JsonConverters.fromJson(json['callState'],'SessionCallState',context!); queueState = JsonConverters.fromJson(json['queueState'],'SessionQueueStates',context!); accountId = json['accountId']; accountName = json['accountName']; customerId = json['customerId']; customerBreadcrumb = JsonConverters.fromJson(json['customerBreadcrumb'],'List',context!); customerName = json['customerName']; endpointId = json['endpointId']; endpointName = json['endpointName']; dateCompleted = json['dateCompleted']; destination = json['destination']; toAddress = json['toAddress']; fromAddress = json['fromAddress']; fromName = json['fromName']; answeredByName = json['answeredByName']; queueMemberId = json['queueMemberId']; channel = JsonConverters.fromJson(json['channel'],'FlowChannels',context!); ended = json['ended']; outcome = json['outcome']; callSid = json['callSid']; consoleData = json['consoleData']; holdQueueName = json['holdQueueName']; heldByUserId = json['heldByUserId']; holdReason = JsonConverters.fromJson(json['holdReason'],'SessionHoldReasons',context!); conferenceSid = json['conferenceSid']; displayName = json['displayName']; log = JsonConverters.fromJson(json['log'],'List',context!); members = JsonConverters.fromJson(json['members'],'List',context!); callbackNumber = json['callbackNumber']; answeredById = json['answeredById']; direction = JsonConverters.fromJson(json['direction'],'SessionDirections',context!); fromPhoneNumber = json['fromPhoneNumber']; mostRecentParticipantCallSid = json['mostRecentParticipantCallSid']; wasMissed = json['wasMissed']; ringQueueId = json['ringQueueId']; return this; } Map toJson() => super.toJson()..addAll({ 'dialState': JsonConverters.toJson(dialState,'SessionDialState',context!), 'callState': JsonConverters.toJson(callState,'SessionCallState',context!), 'queueState': JsonConverters.toJson(queueState,'SessionQueueStates',context!), 'accountId': accountId, 'accountName': accountName, 'customerId': customerId, 'customerBreadcrumb': JsonConverters.toJson(customerBreadcrumb,'List',context!), 'customerName': customerName, 'endpointId': endpointId, 'endpointName': endpointName, 'dateCompleted': dateCompleted, 'destination': destination, 'toAddress': toAddress, 'fromAddress': fromAddress, 'fromName': fromName, 'answeredByName': answeredByName, 'queueMemberId': queueMemberId, 'channel': JsonConverters.toJson(channel,'FlowChannels',context!), 'ended': ended, 'outcome': outcome, 'callSid': callSid, 'consoleData': consoleData, 'holdQueueName': holdQueueName, 'heldByUserId': heldByUserId, 'holdReason': JsonConverters.toJson(holdReason,'SessionHoldReasons',context!), 'conferenceSid': conferenceSid, 'displayName': displayName, 'log': JsonConverters.toJson(log,'List',context!), 'members': JsonConverters.toJson(members,'List',context!), 'callbackNumber': callbackNumber, 'answeredById': answeredById, 'direction': JsonConverters.toJson(direction,'SessionDirections',context!), 'fromPhoneNumber': fromPhoneNumber, 'mostRecentParticipantCallSid': mostRecentParticipantCallSid, 'wasMissed': wasMissed, 'ringQueueId': ringQueueId }); getTypeName() => "SessionInfo"; TypeContext? context = _ctx; } class GetActiveSessionsResponse implements IConvertible { List? sessions; GetActiveSessionsResponse({this.sessions}); GetActiveSessionsResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { sessions = JsonConverters.fromJson(json['sessions'],'List',context!); return this; } Map toJson() => { 'sessions': JsonConverters.toJson(sessions,'List',context!) }; getTypeName() => "GetActiveSessionsResponse"; TypeContext? context = _ctx; } /** * Get your active sessions. Will eventually replace GetMySessions */ // @Route("/sessions/active", "GET") // @Api(Description="Get your active sessions. Will eventually replace GetMySessions") class GetActiveSessions implements IReturn, IConvertible, IGet { GetActiveSessions(); GetActiveSessions.fromJson(Map json) : super(); fromMap(Map json) { return this; } Map toJson() => {}; createResponse() => GetActiveSessionsResponse(); getResponseTypeName() => "GetActiveSessionsResponse"; getTypeName() => "GetActiveSessions"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'SessionInfo': TypeInfo(TypeOf.Class, create:() => SessionInfo()), 'SessionDialState': TypeInfo(TypeOf.Class, create:() => SessionDialState()), 'SessionCallState': TypeInfo(TypeOf.Class, create:() => SessionCallState()), 'SessionQueueStates': TypeInfo(TypeOf.Class, create:() => SessionQueueStates()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'FlowChannels': TypeInfo(TypeOf.Class, create:() => FlowChannels()), 'SessionHoldReasons': TypeInfo(TypeOf.Class, create:() => SessionHoldReasons()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SessionLogInfo': TypeInfo(TypeOf.Class, create:() => SessionLogInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'SessionMemberInfo': TypeInfo(TypeOf.Class, create:() => SessionMemberInfo()), 'SessionDirections': TypeInfo(TypeOf.Class, create:() => SessionDirections()), 'GetActiveSessionsResponse': TypeInfo(TypeOf.Class, create:() => GetActiveSessionsResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetActiveSessions': TypeInfo(TypeOf.Class, create:() => GetActiveSessions()), });