/* Options: Date: 2025-05-04 23:20:56 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: AppGetFiles.* //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 FileTypes { Upload, VoiceMessage, CallRecording, Fax, Attachment, FaxOutgoing, } 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; } 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; } // @Route("/portal/files", "GET") class AppGetFiles extends ListRequest implements IReturn>, IConvertible, IGet { String? accountId; String? customerId; String? dateCreatedStart; String? dateCreatedEnd; String? fileNameFilter; FileTypes? type; AppGetFiles({this.accountId,this.customerId,this.dateCreatedStart,this.dateCreatedEnd,this.fileNameFilter,this.type}); AppGetFiles.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); accountId = json['accountId']; customerId = json['customerId']; dateCreatedStart = json['dateCreatedStart']; dateCreatedEnd = json['dateCreatedEnd']; fileNameFilter = json['fileNameFilter']; type = JsonConverters.fromJson(json['type'],'FileTypes',context!); return this; } Map toJson() => super.toJson()..addAll({ 'accountId': accountId, 'customerId': customerId, 'dateCreatedStart': dateCreatedStart, 'dateCreatedEnd': dateCreatedEnd, 'fileNameFilter': fileNameFilter, 'type': JsonConverters.toJson(type,'FileTypes',context!) }); createResponse() => ListResponse(); getResponseTypeName() => "ListResponse"; getTypeName() => "AppGetFiles"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'SortOrders': TypeInfo(TypeOf.Enum, enumValues:SortOrders.values), 'ListRequest': TypeInfo(TypeOf.GenericDef,create:() => ListRequest()), 'FileTypes': TypeInfo(TypeOf.Enum, enumValues:FileTypes.values), 'EntityInfo': TypeInfo(TypeOf.AbstractClass), 'ListResponse': TypeInfo(TypeOf.GenericDef,create:() => ListResponse()), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'FileInfo': TypeInfo(TypeOf.Class, create:() => FileInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'ListResponse': TypeInfo(TypeOf.Class, create:() => ListResponse()), 'AppGetFiles': TypeInfo(TypeOf.Class, create:() => AppGetFiles()), });