/* Options: Date: 2025-05-04 23:04:42 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: PatchFile.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; 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 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; } /** * Updates metadata for the specific file */ // @Route("/files/{fileId}", "PATCH") // @Api(Description="Updates metadata for the specific file") class PatchFile implements IReturn, IPatch, IConvertible { /** * The ID of the file */ // @ApiMember(Description="The ID of the file") String? fileId; /** * The new file name for the file */ // @ApiMember(Description="The new file name for the file") String? fileName; /** * The customer ID to associate with this file */ // @ApiMember(Description="The customer ID to associate with this file") String? customerId; /** * The ID of the user to associate with this file */ // @ApiMember(Description="The ID of the user to associate with this file") String? userId; PatchFile({this.fileId,this.fileName,this.customerId,this.userId}); PatchFile.fromJson(Map json) { fromMap(json); } fromMap(Map json) { fileId = json['fileId']; fileName = json['fileName']; customerId = json['customerId']; userId = json['userId']; return this; } Map toJson() => { 'fileId': fileId, 'fileName': fileName, 'customerId': customerId, 'userId': userId }; createResponse() => FileInfo(); getResponseTypeName() => "FileInfo"; getTypeName() => "PatchFile"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'FileTypes': TypeInfo(TypeOf.Enum, enumValues:FileTypes.values), 'EntityInfo': TypeInfo(TypeOf.AbstractClass), 'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()), 'FileInfo': TypeInfo(TypeOf.Class, create:() => FileInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'PatchFile': TypeInfo(TypeOf.Class, create:() => PatchFile()), });