/* Options: Date: 2026-01-13 14:54:22 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: GetAIUsage.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; class AIAccountUsage implements IConvertible { /** * The account ID this customer belongs to */ // @ApiMember(Description="The account ID this customer belongs to") String? accountId; /** * The total number of AI minutes used in the date range */ // @ApiMember(Description="The total number of AI minutes used in the date range") int? aiMinutes; AIAccountUsage({this.accountId,this.aiMinutes}); AIAccountUsage.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; aiMinutes = json['aiMinutes']; return this; } Map toJson() => { 'accountId': accountId, 'aiMinutes': aiMinutes }; getTypeName() => "AIAccountUsage"; TypeContext? context = _ctx; } class AICustomerUsage implements IConvertible { /** * The account ID this customer belongs to */ // @ApiMember(Description="The account ID this customer belongs to") String? accountId; /** * The customer ID for this uage */ // @ApiMember(Description="The customer ID for this uage") String? customerId; /** * The total number of AI minutes used in the date range */ // @ApiMember(Description="The total number of AI minutes used in the date range") int? aiMinutes; AICustomerUsage({this.accountId,this.customerId,this.aiMinutes}); AICustomerUsage.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; customerId = json['customerId']; aiMinutes = json['aiMinutes']; return this; } Map toJson() => { 'accountId': accountId, 'customerId': customerId, 'aiMinutes': aiMinutes }; getTypeName() => "AICustomerUsage"; TypeContext? context = _ctx; } class AIUsage implements IConvertible { List? accountUsage; List? customerUsage; AIUsage({this.accountUsage,this.customerUsage}); AIUsage.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountUsage = JsonConverters.fromJson(json['accountUsage'],'List',context!); customerUsage = JsonConverters.fromJson(json['customerUsage'],'List',context!); return this; } Map toJson() => { 'accountUsage': JsonConverters.toJson(accountUsage,'List',context!), 'customerUsage': JsonConverters.toJson(customerUsage,'List',context!) }; getTypeName() => "AIUsage"; TypeContext? context = _ctx; } // @Route("/ai/usage") class GetAIUsage implements IReturn, IGet, IConvertible { /** * Filter by account ID. If not specified will return entries for all customers in all accounts in the date range */ // @ApiMember(Description="Filter by account ID. If not specified will return entries for all customers in all accounts in the date range") String? accountId; /** * Filter by customer ID. If not specified, will return all customers for the accounts considered */ // @ApiMember(Description="Filter by customer ID. If not specified, will return all customers for the accounts considered") String? customerId; /** * The start of the date range to consider */ // @ApiMember(Description="The start of the date range to consider") String? startDate; /** * The end of the date range to consider */ // @ApiMember(Description="The end of the date range to consider") String? endDate; GetAIUsage({this.accountId,this.customerId,this.startDate,this.endDate}); GetAIUsage.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; customerId = json['customerId']; startDate = json['startDate']; endDate = json['endDate']; return this; } Map toJson() => { 'accountId': accountId, 'customerId': customerId, 'startDate': startDate, 'endDate': endDate }; createResponse() => AIUsage(); getResponseTypeName() => "AIUsage"; getTypeName() => "GetAIUsage"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: { 'AIAccountUsage': TypeInfo(TypeOf.Class, create:() => AIAccountUsage()), 'AICustomerUsage': TypeInfo(TypeOf.Class, create:() => AICustomerUsage()), 'AIUsage': TypeInfo(TypeOf.Class, create:() => AIUsage()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'List': TypeInfo(TypeOf.Class, create:() => []), 'GetAIUsage': TypeInfo(TypeOf.Class, create:() => GetAIUsage()), });