/* Options: Date: 2025-05-04 23:45:25 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: GetBilling.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class BillingCustomerInfo implements IConvertible { String? customerId; double? internationalCosts; bool? hasCallRecording; BillingCustomerInfo({this.customerId,this.internationalCosts,this.hasCallRecording}); BillingCustomerInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { customerId = json['customerId']; internationalCosts = JsonConverters.toDouble(json['internationalCosts']); hasCallRecording = json['hasCallRecording']; return this; } Map toJson() => { 'customerId': customerId, 'internationalCosts': internationalCosts, 'hasCallRecording': hasCallRecording }; getTypeName() => "BillingCustomerInfo"; TypeContext? context = _ctx; } class BillingInfo implements IConvertible { List? customers; BillingInfo({this.customers}); BillingInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { customers = JsonConverters.fromJson(json['customers'],'List',context!); return this; } Map toJson() => { 'customers': JsonConverters.toJson(customers,'List',context!) }; getTypeName() => "BillingInfo"; TypeContext? context = _ctx; } /** * Get the billing totals for the specified date range. Please note that we do not support getting billing at the hourly time granularity. */ // @Route("/billing", "GET") // @Api(Description="Get the billing totals for the specified date range. Please note that we do not support getting billing at the hourly time granularity.") class GetBilling implements IReturn, IConvertible, IGet { /** * Your Evo Voice Account ID */ // @ApiMember(Description="Your Evo Voice Account ID", IsRequired=true) String? accountId; /** * The start of the date range that you want to query for (we will only use the date portion, so it will include the entire day even if you specify a time as well) */ // @ApiMember(Description="The start of the date range that you want to query for (we will only use the date portion, so it will include the entire day even if you specify a time as well)", IsRequired=true) String? startDate; /** * The end of the date range you want to query for (we will include this entire day in the billing) */ // @ApiMember(Description="The end of the date range you want to query for (we will include this entire day in the billing)", IsRequired=true) String? endDate; /** * Specify this to filter to a specific customer. */ // @ApiMember(Description="Specify this to filter to a specific customer.") String? customerId; GetBilling({this.accountId,this.startDate,this.endDate,this.customerId}); GetBilling.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; startDate = json['startDate']; endDate = json['endDate']; customerId = json['customerId']; return this; } Map toJson() => { 'accountId': accountId, 'startDate': startDate, 'endDate': endDate, 'customerId': customerId }; createResponse() => BillingInfo(); getResponseTypeName() => "BillingInfo"; getTypeName() => "GetBilling"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'BillingCustomerInfo': TypeInfo(TypeOf.Class, create:() => BillingCustomerInfo()), 'BillingInfo': TypeInfo(TypeOf.Class, create:() => BillingInfo()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetBilling': TypeInfo(TypeOf.Class, create:() => GetBilling()), });