/* Options: Date: 2025-05-04 23:41:55 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: SyncPhoneNumbersReport.* //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/sync-phone-numbers") class SyncPhoneNumbersReport extends ReportRequest implements IReturn, IConvertible, IPost { bool? syncDocumoNumbers; SyncPhoneNumbersReport({this.syncDocumoNumbers}); SyncPhoneNumbersReport.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); syncDocumoNumbers = json['syncDocumoNumbers']; return this; } Map toJson() => super.toJson()..addAll({ 'syncDocumoNumbers': syncDocumoNumbers }); createResponse() => ReportInfo(); getResponseTypeName() => "ReportInfo"; getTypeName() => "SyncPhoneNumbersReport"; 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()), 'SyncPhoneNumbersReport': TypeInfo(TypeOf.Class, create:() => SyncPhoneNumbersReport()), });