/* Options: Date: 2025-11-04 22:58:29 SwiftVersion: 6.0 Version: 8.71 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://evovoice.io //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: NewAISession.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Creates a new session */ // @Route("/ai/sessions", "POST") // @Api(Description="Creates a new session") public class NewAISession : IReturn, IPost, Codable { public typealias Return = AISessionInfo /** * The account ID to associate this session with */ // @ApiMember(Description="The account ID to associate this session with") public var accountId:String? /** * The purpose for this session */ // @ApiMember(Description="The purpose for this session") public var purpose:String? required public init(){} } public class AISessionInfo : EntityInfo { /** * The ID of the account associated with this session */ // @ApiMember(Description="The ID of the account associated with this session") public var accountId:String? /** * The name of the account associated with this customer */ // @ApiMember(Description="The name of the account associated with this customer") public var accountName:String? /** * The purpose for this AI session */ // @ApiMember(Description="The purpose for this AI session") public var purpose:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case accountId case accountName case purpose } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) accountId = try container.decodeIfPresent(String.self, forKey: .accountId) accountName = try container.decodeIfPresent(String.self, forKey: .accountName) purpose = try container.decodeIfPresent(String.self, forKey: .purpose) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if accountId != nil { try container.encode(accountId, forKey: .accountId) } if accountName != nil { try container.encode(accountName, forKey: .accountName) } if purpose != nil { try container.encode(purpose, forKey: .purpose) } } } public class EntityInfo : Codable { /** * The ID of the object */ // @ApiMember(Description="The ID of the object") public var id:String? /** * The date the object was created */ // @ApiMember(Description="The date the object was created") public var dateCreated:String? /** * The date the object was last modified */ // @ApiMember(Description="The date the object was last modified") public var dateLastModified:String? /** * The user that created this object */ // @ApiMember(Description="The user that created this object") public var createdBy:String? /** * The user that last modified this object */ // @ApiMember(Description="The user that last modified this object") public var lastModifiedBy:String? required public init(){} }