/* Options: Date: 2025-05-04 23:36:18 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: AppGetActivity.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; enum SortOrders { Ascend, Descend, } abstract class ListRequest implements IGet { /** * The page of data to retrieve */ // @ApiMember(Description="The page of data to retrieve") int? page; /** * If you want all objects to be returned. This should be used with care */ // @ApiMember(Description="If you want all objects to be returned. This should be used with care") bool? all; /** * The number per page to retrieve */ // @ApiMember(Description="The number per page to retrieve") int? countPerPage; /** * Specific IDs */ // @ApiMember(Description="Specific IDs") List? specificIds; /** * Specify a sort field */ // @ApiMember(Description="Specify a sort field") String? sortField; /** * Specify a sort order */ // @ApiMember(Description="Specify a sort order") SortOrders? sortOrder; /** * Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array */ // @ApiMember(Description="Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array") bool? simplifiedPaging; ListRequest({this.page,this.all,this.countPerPage,this.specificIds,this.sortField,this.sortOrder,this.simplifiedPaging}); ListRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { page = json['page']; all = json['all']; countPerPage = json['countPerPage']; specificIds = JsonConverters.fromJson(json['specificIds'],'List',context!); sortField = json['sortField']; sortOrder = JsonConverters.fromJson(json['sortOrder'],'SortOrders',context!); simplifiedPaging = json['simplifiedPaging']; return this; } Map toJson() => { 'page': page, 'all': all, 'countPerPage': countPerPage, 'specificIds': JsonConverters.toJson(specificIds,'List',context!), 'sortField': sortField, 'sortOrder': JsonConverters.toJson(sortOrder,'SortOrders',context!), 'simplifiedPaging': simplifiedPaging }; getTypeName() => "ListRequest<$T>"; TypeContext? context = _ctx; } enum FlowChannels { Voice, Chat, Fax, } enum SessionDirections { Incoming, Outgoing, } enum SessionCallState { Disconnected, Ringing, Connected, Hold, Passive, } enum SessionHoldReasons { None, Transferring, } enum SessionQueueStates { None, Queued, Ringing, Connected, Hold, Disconnected, } abstract class EntityInfo { /** * The ID of the object */ // @ApiMember(Description="The ID of the object") String? id; /** * The date the object was created */ // @ApiMember(Description="The date the object was created") String? dateCreated; /** * The date the object was last modified */ // @ApiMember(Description="The date the object was last modified") String? dateLastModified; /** * The user that created this object */ // @ApiMember(Description="The user that created this object") String? createdBy; /** * The user that last modified this object */ // @ApiMember(Description="The user that last modified this object") String? lastModifiedBy; EntityInfo({this.id,this.dateCreated,this.dateLastModified,this.createdBy,this.lastModifiedBy}); EntityInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; dateCreated = json['dateCreated']; dateLastModified = json['dateLastModified']; createdBy = json['createdBy']; lastModifiedBy = json['lastModifiedBy']; return this; } Map toJson() => { 'id': id, 'dateCreated': dateCreated, 'dateLastModified': dateLastModified, 'createdBy': createdBy, 'lastModifiedBy': lastModifiedBy }; getTypeName() => "EntityInfo"; TypeContext? context = _ctx; } class ListResponse implements IConvertible { /** * The items */ // @ApiMember(Description="The items") List? items; /** * The total number of items */ // @ApiMember(Description="The total number of items") int? totalCount; /** * The total number of pages */ // @ApiMember(Description="The total number of pages") int? totalPages; /** * Are there more pages of items? Used with simplified paging */ // @ApiMember(Description="Are there more pages of items? Used with simplified paging") bool? hasMorePages; ListResponse({this.items,this.totalCount,this.totalPages,this.hasMorePages}); ListResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { items = JsonConverters.fromJson(json['items'],'List<${runtimeGenericTypeDefs(this,[0]).join(",")}>',context!); totalCount = json['totalCount']; totalPages = json['totalPages']; hasMorePages = json['hasMorePages']; return this; } Map toJson() => { 'items': JsonConverters.toJson(items,'List',context!), 'totalCount': totalCount, 'totalPages': totalPages, 'hasMorePages': hasMorePages }; getTypeName() => "ListResponse<$T>"; TypeContext? context = _ctx; } class CustomerBreadcrumb implements IConvertible { String? id; String? name; CustomerBreadcrumb({this.id,this.name}); CustomerBreadcrumb.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; return this; } Map toJson() => { 'id': id, 'name': name }; getTypeName() => "CustomerBreadcrumb"; TypeContext? context = _ctx; } enum SessionDialState { None, Active, } class SessionLogInfo implements IConvertible { String? date; String? message; SessionLogInfo({this.date,this.message}); SessionLogInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { date = json['date']; message = json['message']; return this; } Map toJson() => { 'date': date, 'message': message }; getTypeName() => "SessionLogInfo"; TypeContext? context = _ctx; } enum SessionMemberCallState { None, Ringing, Connected, Hold, } enum SessionMemberRoles { None, Caller, Agent, Transfer, } class SessionMemberInfo implements IConvertible { String? identity; String? endpointId; String? displayName; bool? isOriginalMember; String? avatarUrl; Map? applicationData; SessionMemberCallState? callState; SessionMemberRoles? role; String? callSid; bool? muted; SessionMemberInfo({this.identity,this.endpointId,this.displayName,this.isOriginalMember,this.avatarUrl,this.applicationData,this.callState,this.role,this.callSid,this.muted}); SessionMemberInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { identity = json['identity']; endpointId = json['endpointId']; displayName = json['displayName']; isOriginalMember = json['isOriginalMember']; avatarUrl = json['avatarUrl']; applicationData = JsonConverters.toStringMap(json['applicationData']); callState = JsonConverters.fromJson(json['callState'],'SessionMemberCallState',context!); role = JsonConverters.fromJson(json['role'],'SessionMemberRoles',context!); callSid = json['callSid']; muted = json['muted']; return this; } Map toJson() => { 'identity': identity, 'endpointId': endpointId, 'displayName': displayName, 'isOriginalMember': isOriginalMember, 'avatarUrl': avatarUrl, 'applicationData': applicationData, 'callState': JsonConverters.toJson(callState,'SessionMemberCallState',context!), 'role': JsonConverters.toJson(role,'SessionMemberRoles',context!), 'callSid': callSid, 'muted': muted }; getTypeName() => "SessionMemberInfo"; TypeContext? context = _ctx; } 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; } // @Route("/portal/activity", "GET") class AppGetActivity extends ListRequest implements IReturn>, IConvertible, IGet { String? accountId; String? customerId; String? fromAddressFilter; String? toAddressFilter; String? startDateTime; String? endDateTime; AppGetActivity({this.accountId,this.customerId,this.fromAddressFilter,this.toAddressFilter,this.startDateTime,this.endDateTime}); AppGetActivity.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); accountId = json['accountId']; customerId = json['customerId']; fromAddressFilter = json['fromAddressFilter']; toAddressFilter = json['toAddressFilter']; startDateTime = json['startDateTime']; endDateTime = json['endDateTime']; return this; } Map toJson() => super.toJson()..addAll({ 'accountId': accountId, 'customerId': customerId, 'fromAddressFilter': fromAddressFilter, 'toAddressFilter': toAddressFilter, 'startDateTime': startDateTime, 'endDateTime': endDateTime }); createResponse() => ListResponse(); getResponseTypeName() => "ListResponse"; getTypeName() => "AppGetActivity"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'SortOrders': TypeInfo(TypeOf.Enum, enumValues:SortOrders.values), 'ListRequest': TypeInfo(TypeOf.GenericDef,create:() => ListRequest()), 'FlowChannels': TypeInfo(TypeOf.Enum, enumValues:FlowChannels.values), 'SessionDirections': TypeInfo(TypeOf.Enum, enumValues:SessionDirections.values), 'SessionCallState': TypeInfo(TypeOf.Enum, enumValues:SessionCallState.values), 'SessionHoldReasons': TypeInfo(TypeOf.Enum, enumValues:SessionHoldReasons.values), 'SessionQueueStates': TypeInfo(TypeOf.Enum, enumValues:SessionQueueStates.values), 'EntityInfo': TypeInfo(TypeOf.AbstractClass), 'ListResponse': TypeInfo(TypeOf.GenericDef,create:() => ListResponse()), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'SessionDialState': TypeInfo(TypeOf.Enum, enumValues:SessionDialState.values), 'SessionLogInfo': TypeInfo(TypeOf.Class, create:() => SessionLogInfo()), 'SessionMemberCallState': TypeInfo(TypeOf.Enum, enumValues:SessionMemberCallState.values), 'SessionMemberRoles': TypeInfo(TypeOf.Enum, enumValues:SessionMemberRoles.values), 'SessionMemberInfo': TypeInfo(TypeOf.Class, create:() => SessionMemberInfo()), 'SessionInfo': TypeInfo(TypeOf.Class, create:() => SessionInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ListResponse': TypeInfo(TypeOf.Class, create:() => ListResponse()), 'AppGetActivity': TypeInfo(TypeOf.Class, create:() => AppGetActivity()), });