/* Options: Date: 2025-11-04 22:58:24 Version: 8.71 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://evovoice.io //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: NewAISession.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart,dart:typed_data */ import 'package:servicestack/servicestack.dart'; import 'dart:typed_data'; 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 AISessionInfo extends EntityInfo implements IConvertible { /** * The ID of the account associated with this session */ // @ApiMember(Description="The ID of the account associated with this session") String? accountId; /** * The name of the account associated with this customer */ // @ApiMember(Description="The name of the account associated with this customer") String? accountName; /** * The purpose for this AI session */ // @ApiMember(Description="The purpose for this AI session") String? purpose; AISessionInfo({this.accountId,this.accountName,this.purpose}); AISessionInfo.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); accountId = json['accountId']; accountName = json['accountName']; purpose = json['purpose']; return this; } Map toJson() => super.toJson()..addAll({ 'accountId': accountId, 'accountName': accountName, 'purpose': purpose }); getTypeName() => "AISessionInfo"; TypeContext? context = _ctx; } /** * Creates a new session */ // @Route("/ai/sessions", "POST") // @Api(Description="Creates a new session") class NewAISession implements IReturn, IPost, IConvertible { /** * The account ID to associate this session with */ // @ApiMember(Description="The account ID to associate this session with") String? accountId; /** * The purpose for this session */ // @ApiMember(Description="The purpose for this session") String? purpose; NewAISession({this.accountId,this.purpose}); NewAISession.fromJson(Map json) { fromMap(json); } fromMap(Map json) { accountId = json['accountId']; purpose = json['purpose']; return this; } Map toJson() => { 'accountId': accountId, 'purpose': purpose }; createResponse() => AISessionInfo(); getResponseTypeName() => "AISessionInfo"; getTypeName() => "NewAISession"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'evovoice.io', types: { 'EntityInfo': TypeInfo(TypeOf.AbstractClass), 'AISessionInfo': TypeInfo(TypeOf.Class, create:() => AISessionInfo()), 'NewAISession': TypeInfo(TypeOf.Class, create:() => NewAISession()), });