/* Options: Date: 2025-05-04 23:47:21 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: CallOutcomeReport.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; abstract class ReportRequest implements IPost { /** * The account ID this report should be run for */ // @ApiMember(Description="The account ID this report should be run for") String? accountId; /** * The email address to notify after the report is run */ // @ApiMember(Description="The email address to notify after the report is run") String? emailAddressToNotify; /** * The webhook to call after the report is complete with the data from the report */ // @ApiMember(Description="The webhook to call after the report is complete with the data from the report") String? webhookUrl; ReportRequest({this.accountId,this.emailAddressToNotify,this.webhookUrl}); ReportRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; emailAddressToNotify = json['emailAddressToNotify']; webhookUrl = json['webhookUrl']; return this; } Map toJson() => { 'accountId': accountId, 'emailAddressToNotify': emailAddressToNotify, 'webhookUrl': webhookUrl }; getTypeName() => "ReportRequest"; TypeContext? context = _ctx; } enum ReportStatuses { Queued, Running, Completed, Error, } class ReportInfo implements IConvertible { String? id; String? name; ReportStatuses? status; String? statusMessage; String? dateCreated; String? dateUpdated; String? downloadLink; String? jobId; String? emailAddressToNotify; String? server; ReportInfo({this.id,this.name,this.status,this.statusMessage,this.dateCreated,this.dateUpdated,this.downloadLink,this.jobId,this.emailAddressToNotify,this.server}); ReportInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { id = json['id']; name = json['name']; status = JsonConverters.fromJson(json['status'],'ReportStatuses',context!); statusMessage = json['statusMessage']; dateCreated = json['dateCreated']; dateUpdated = json['dateUpdated']; downloadLink = json['downloadLink']; jobId = json['jobId']; emailAddressToNotify = json['emailAddressToNotify']; server = json['server']; return this; } Map toJson() => { 'id': id, 'name': name, 'status': JsonConverters.toJson(status,'ReportStatuses',context!), 'statusMessage': statusMessage, 'dateCreated': dateCreated, 'dateUpdated': dateUpdated, 'downloadLink': downloadLink, 'jobId': jobId, 'emailAddressToNotify': emailAddressToNotify, 'server': server }; getTypeName() => "ReportInfo"; TypeContext? context = _ctx; } // @Route("/reports/call-outcome") class CallOutcomeReport extends ReportRequest implements IReturn, IConvertible, IPost { String? startDate; String? endDate; String? timeZoneId; String? customerId; String? specificState; bool? includeArchivedSessions; CallOutcomeReport({this.startDate,this.endDate,this.timeZoneId,this.customerId,this.specificState,this.includeArchivedSessions}); CallOutcomeReport.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); startDate = json['startDate']; endDate = json['endDate']; timeZoneId = json['timeZoneId']; customerId = json['customerId']; specificState = json['specificState']; includeArchivedSessions = json['includeArchivedSessions']; return this; } Map toJson() => super.toJson()..addAll({ 'startDate': startDate, 'endDate': endDate, 'timeZoneId': timeZoneId, 'customerId': customerId, 'specificState': specificState, 'includeArchivedSessions': includeArchivedSessions }); createResponse() => ReportInfo(); getResponseTypeName() => "ReportInfo"; getTypeName() => "CallOutcomeReport"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'ReportRequest': TypeInfo(TypeOf.AbstractClass), 'ReportStatuses': TypeInfo(TypeOf.Enum, enumValues:ReportStatuses.values), 'ReportInfo': TypeInfo(TypeOf.Class, create:() => ReportInfo()), 'CallOutcomeReport': TypeInfo(TypeOf.Class, create:() => CallOutcomeReport()), });