/* Options:
Date: 2025-07-18 07:19:00
Version: 8.71
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://team.evovoice.io

//Package: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: ListConversations.*
//ExcludeTypes: 
//InitializeCollections: False
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.*
*/

import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


@Route(Path="/conversations", Verbs="GET")
open class ListConversations : IReturn<ListConversationsResponse>
{
    /**
    * The IDs of the account whose conversations you want to retrieve
    */
    @ApiMember(Description="The IDs of the account whose conversations you want to retrieve")
    open var accountIds:ArrayList<String>? = null

    /**
    * The list of endpoint IDs whose conversations you want to retrieve
    */
    @ApiMember(Description="The list of endpoint IDs whose conversations you want to retrieve")
    open var endpointIds:ArrayList<String>? = null

    /**
    * The list of customer IDs whose conversations you want to retrieve
    */
    @ApiMember(Description="The list of customer IDs whose conversations you want to retrieve")
    open var customerIds:ArrayList<String>? = null

    /**
    * The start date for the conversations you want to retrieve
    */
    @ApiMember(Description="The start date for the conversations you want to retrieve")
    open var afterDate:String? = null
    companion object { private val responseType = ListConversationsResponse::class.java }
    override fun getResponseType(): Any? = ListConversations.responseType
}

open class ListConversationsResponse
{
    open var conversations:ArrayList<ConversationInfo>? = null
}

open class ConversationInfo
{
    open var id:String? = null
    open var endpointId:String? = null
    open var otherAddress:String? = null
    open var mostRecentMessage:MessageInfo? = null
}

open class MessageInfo
{
    open var id:String? = null
    open var accountId:String? = null
    open var customerId:String? = null
    open var endpointId:String? = null
    open var endpointDisplayName:String? = null
    open var date:String? = null
    open var direction:MessageDirections? = null
    open var otherAddress:String? = null
    open var sender:String? = null
    open var text:String? = null
    open var isUnread:Boolean? = null
}