/* Options: Date: 2025-05-05 01:00:35 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: AppGetHomeInformation.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class HostedSuiteCompletedFormField implements IConvertible { String? name; List? values; HostedSuiteCompletedFormField({this.name,this.values}); HostedSuiteCompletedFormField.fromJson(Map json) { fromMap(json); } fromMap(Map json) { name = json['name']; values = JsonConverters.fromJson(json['values'],'List',context!); return this; } Map toJson() => { 'name': name, 'values': JsonConverters.toJson(values,'List',context!) }; getTypeName() => "HostedSuiteCompletedFormField"; TypeContext? context = _ctx; } class HostedSuiteCompletedForm implements IConvertible { String? id; String? name; String? dateCreated; String? dateCompleted; String? formId; String? formName; String? clientId; String? clientName; String? contactId; String? contactName; List? contactsIds; List? contactsNames; String? emailSubject; String? callerNumber; List? fields; HostedSuiteCompletedForm({this.id,this.name,this.dateCreated,this.dateCompleted,this.formId,this.formName,this.clientId,this.clientName,this.contactId,this.contactName,this.contactsIds,this.contactsNames,this.emailSubject,this.callerNumber,this.fields}); HostedSuiteCompletedForm.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; dateCreated = json['dateCreated']; dateCompleted = json['dateCompleted']; formId = json['formId']; formName = json['formName']; clientId = json['clientId']; clientName = json['clientName']; contactId = json['contactId']; contactName = json['contactName']; contactsIds = JsonConverters.fromJson(json['contactsIds'],'List',context!); contactsNames = JsonConverters.fromJson(json['contactsNames'],'List',context!); emailSubject = json['emailSubject']; callerNumber = json['callerNumber']; fields = JsonConverters.fromJson(json['fields'],'List',context!); return this; } Map toJson() => { 'id': id, 'name': name, 'dateCreated': dateCreated, 'dateCompleted': dateCompleted, 'formId': formId, 'formName': formName, 'clientId': clientId, 'clientName': clientName, 'contactId': contactId, 'contactName': contactName, 'contactsIds': JsonConverters.toJson(contactsIds,'List',context!), 'contactsNames': JsonConverters.toJson(contactsNames,'List',context!), 'emailSubject': emailSubject, 'callerNumber': callerNumber, 'fields': JsonConverters.toJson(fields,'List',context!) }; getTypeName() => "HostedSuiteCompletedForm"; TypeContext? context = _ctx; } class MessageInfo implements IConvertible { String? id; String? accountId; String? customerId; String? endpointId; String? endpointDisplayName; String? date; MessageDirections? direction; String? otherAddress; String? sender; String? text; bool? isUnread; MessageInfo({this.id,this.accountId,this.customerId,this.endpointId,this.endpointDisplayName,this.date,this.direction,this.otherAddress,this.sender,this.text,this.isUnread}); MessageInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; accountId = json['accountId']; customerId = json['customerId']; endpointId = json['endpointId']; endpointDisplayName = json['endpointDisplayName']; date = json['date']; direction = JsonConverters.fromJson(json['direction'],'MessageDirections',context!); otherAddress = json['otherAddress']; sender = json['sender']; text = json['text']; isUnread = json['isUnread']; return this; } Map toJson() => { 'id': id, 'accountId': accountId, 'customerId': customerId, 'endpointId': endpointId, 'endpointDisplayName': endpointDisplayName, 'date': date, 'direction': JsonConverters.toJson(direction,'MessageDirections',context!), 'otherAddress': otherAddress, 'sender': sender, 'text': text, 'isUnread': isUnread }; getTypeName() => "MessageInfo"; TypeContext? context = _ctx; } class ConversationInfo implements IConvertible { String? id; String? endpointId; String? otherAddress; MessageInfo? mostRecentMessage; ConversationInfo({this.id,this.endpointId,this.otherAddress,this.mostRecentMessage}); ConversationInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; endpointId = json['endpointId']; otherAddress = json['otherAddress']; mostRecentMessage = JsonConverters.fromJson(json['mostRecentMessage'],'MessageInfo',context!); return this; } Map toJson() => { 'id': id, 'endpointId': endpointId, 'otherAddress': otherAddress, 'mostRecentMessage': JsonConverters.toJson(mostRecentMessage,'MessageInfo',context!) }; getTypeName() => "ConversationInfo"; TypeContext? context = _ctx; } class AppHomeCallMetric implements IConvertible { String? metricKey; double? total; double? average; AppHomeCallMetric({this.metricKey,this.total,this.average}); AppHomeCallMetric.fromJson(Map json) { fromMap(json); } fromMap(Map json) { metricKey = json['metricKey']; total = JsonConverters.toDouble(json['total']); average = JsonConverters.toDouble(json['average']); return this; } Map toJson() => { 'metricKey': metricKey, 'total': total, 'average': average }; getTypeName() => "AppHomeCallMetric"; TypeContext? context = _ctx; } class FileInfo extends EntityInfo implements IConvertible { /** * The type of file this is */ // @ApiMember(Description="The type of file this is") FileTypes? type; /** * The account ID this file is associated with */ // @ApiMember(Description="The account ID this file is associated with") String? accountId; /** * The name of the account this file is associated with */ // @ApiMember(Description="The name of the account this file is associated with") String? accountName; /** * The ID of the customer this file is associated with */ // @ApiMember(Description="The ID of the customer this file is associated with") String? customerId; /** * The name of the customer this file is associated with */ // @ApiMember(Description="The name of the customer this file is associated with") String? customerName; /** * The breadcrumb to the customer for this file */ // @ApiMember(Description="The breadcrumb to the customer for this file") List? customerBreadcrumb; /** * The ID of the user this file is assocaited with */ // @ApiMember(Description="The ID of the user this file is assocaited with") String? userId; /** * The name of the user this file is associated with */ // @ApiMember(Description="The name of the user this file is associated with") String? userName; /** * The original file name for the file */ // @ApiMember(Description="The original file name for the file") String? fileName; /** * The URI of the file */ // @ApiMember(Description="The URI of the file") String? uri; /** * The Content type of the file */ // @ApiMember(Description="The Content type of the file") String? contentType; /** * The size of the file */ // @ApiMember(Description="The size of the file") int? contentLength; /** * The Twilio ID of the recording */ // @ApiMember(Description="The Twilio ID of the recording") String? recordingSid; /** * The duration of the recording in seconds */ // @ApiMember(Description="The duration of the recording in seconds") int? recordingDuration; /** * Who is the recording from? */ // @ApiMember(Description="Who is the recording from?") String? recordingFrom; /** * Transcription (if available) */ // @ApiMember(Description="Transcription (if available)") String? transcription; /** * From Address (e.g. caller ID) for incoming calls */ // @ApiMember(Description="From Address (e.g. caller ID) for incoming calls") String? fromAddress; /** * To Address (e.g. dialed number) for outgoing calls */ // @ApiMember(Description="To Address (e.g. dialed number) for outgoing calls") String? toAddress; /** * The AI transcription for this call */ // @ApiMember(Description="The AI transcription for this call") String? aiTranscription; FileInfo({this.type,this.accountId,this.accountName,this.customerId,this.customerName,this.customerBreadcrumb,this.userId,this.userName,this.fileName,this.uri,this.contentType,this.contentLength,this.recordingSid,this.recordingDuration,this.recordingFrom,this.transcription,this.fromAddress,this.toAddress,this.aiTranscription}); FileInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); type = JsonConverters.fromJson(json['type'],'FileTypes',context!); accountId = json['accountId']; accountName = json['accountName']; customerId = json['customerId']; customerName = json['customerName']; customerBreadcrumb = JsonConverters.fromJson(json['customerBreadcrumb'],'List',context!); userId = json['userId']; userName = json['userName']; fileName = json['fileName']; uri = json['uri']; contentType = json['contentType']; contentLength = json['contentLength']; recordingSid = json['recordingSid']; recordingDuration = json['recordingDuration']; recordingFrom = json['recordingFrom']; transcription = json['transcription']; fromAddress = json['fromAddress']; toAddress = json['toAddress']; aiTranscription = json['aiTranscription']; return this; } Map toJson() => super.toJson()..addAll({ 'type': JsonConverters.toJson(type,'FileTypes',context!), 'accountId': accountId, 'accountName': accountName, 'customerId': customerId, 'customerName': customerName, 'customerBreadcrumb': JsonConverters.toJson(customerBreadcrumb,'List',context!), 'userId': userId, 'userName': userName, 'fileName': fileName, 'uri': uri, 'contentType': contentType, 'contentLength': contentLength, 'recordingSid': recordingSid, 'recordingDuration': recordingDuration, 'recordingFrom': recordingFrom, 'transcription': transcription, 'fromAddress': fromAddress, 'toAddress': toAddress, 'aiTranscription': aiTranscription }); getTypeName() => "FileInfo"; 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; } class AppHomeInformation implements IConvertible { bool? isHostedSuiteCustomer; List? conversations; List? calls; List? callMetrics; List? voicemail; List? forms; AppHomeInformation({this.isHostedSuiteCustomer,this.conversations,this.calls,this.callMetrics,this.voicemail,this.forms}); AppHomeInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { isHostedSuiteCustomer = json['isHostedSuiteCustomer']; conversations = JsonConverters.fromJson(json['conversations'],'List',context!); calls = JsonConverters.fromJson(json['calls'],'List',context!); callMetrics = JsonConverters.fromJson(json['callMetrics'],'List',context!); voicemail = JsonConverters.fromJson(json['voicemail'],'List',context!); forms = JsonConverters.fromJson(json['forms'],'List',context!); return this; } Map toJson() => { 'isHostedSuiteCustomer': isHostedSuiteCustomer, 'conversations': JsonConverters.toJson(conversations,'List',context!), 'calls': JsonConverters.toJson(calls,'List',context!), 'callMetrics': JsonConverters.toJson(callMetrics,'List',context!), 'voicemail': JsonConverters.toJson(voicemail,'List',context!), 'forms': JsonConverters.toJson(forms,'List',context!) }; getTypeName() => "AppHomeInformation"; TypeContext? context = _ctx; } // @Route("/portal/home", "GET") class AppGetHomeInformation implements IReturn, IConvertible, IGet { String? accountId; String? customerId; String? fromDate; AppGetHomeInformation({this.accountId,this.customerId,this.fromDate}); AppGetHomeInformation.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; customerId = json['customerId']; fromDate = json['fromDate']; return this; } Map toJson() => { 'accountId': accountId, 'customerId': customerId, 'fromDate': fromDate }; createResponse() => AppHomeInformation(); getResponseTypeName() => "AppHomeInformation"; getTypeName() => "AppGetHomeInformation"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'HostedSuiteCompletedFormField': TypeInfo(TypeOf.Class, create:() => HostedSuiteCompletedFormField()), 'HostedSuiteCompletedForm': TypeInfo(TypeOf.Class, create:() => HostedSuiteCompletedForm()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'MessageInfo': TypeInfo(TypeOf.Class, create:() => MessageInfo()), 'MessageDirections': TypeInfo(TypeOf.Class, create:() => MessageDirections()), 'ConversationInfo': TypeInfo(TypeOf.Class, create:() => ConversationInfo()), 'AppHomeCallMetric': TypeInfo(TypeOf.Class, create:() => AppHomeCallMetric()), 'FileInfo': TypeInfo(TypeOf.Class, create:() => FileInfo()), 'FileTypes': TypeInfo(TypeOf.Class, create:() => FileTypes()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'SessionInfo': TypeInfo(TypeOf.Class, create:() => SessionInfo()), 'SessionDialState': TypeInfo(TypeOf.Class, create:() => SessionDialState()), 'SessionCallState': TypeInfo(TypeOf.Class, create:() => SessionCallState()), 'SessionQueueStates': TypeInfo(TypeOf.Class, create:() => SessionQueueStates()), '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()), 'AppHomeInformation': TypeInfo(TypeOf.Class, create:() => AppHomeInformation()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'AppGetHomeInformation': TypeInfo(TypeOf.Class, create:() => AppGetHomeInformation()), });