package kr.co.vividnext.sodalive.message

import android.os.Parcelable
import androidx.annotation.Keep
import com.google.gson.annotations.SerializedName
import kotlinx.parcelize.Parcelize

@Keep
data class GetVoiceMessageResponse(
    @SerializedName("totalCount") val totalCount: Int,
    @SerializedName("items") val items: List<VoiceMessageItem>
) {
    @Keep
    data class VoiceMessageItem(
        @SerializedName("messageId") val messageId: Long,
        @SerializedName("senderId") val senderId: Long,
        @SerializedName("senderNickname") val senderNickname: String,
        @SerializedName("senderProfileImageUrl") val senderProfileImageUrl: String,
        @SerializedName("recipientNickname") val recipientNickname: String,
        @SerializedName("recipientProfileImageUrl") val recipientProfileImageUrl: String,
        @SerializedName("voiceMessageUrl") val voiceMessageUrl: String,
        @SerializedName("date") val date: String,
        @SerializedName("isKept") val isKept: Boolean
    )
}

@Keep
data class GetTextMessageResponse(
    @SerializedName("totalCount") val totalCount: Int,
    @SerializedName("items") val items: List<TextMessageItem>
) {
    @Parcelize
    @Keep
    data class TextMessageItem(
        @SerializedName("messageId") val messageId: Long,
        @SerializedName("senderId") val senderId: Long,
        @SerializedName("senderNickname") val senderNickname: String,
        @SerializedName("senderProfileImageUrl") val senderProfileImageUrl: String,
        @SerializedName("recipientNickname") val recipientNickname: String,
        @SerializedName("recipientProfileImageUrl") val recipientProfileImageUrl: String,
        @SerializedName("textMessage") val textMessage: String,
        @SerializedName("date") val date: String,
        @SerializedName("isKept") val isKept: Boolean
    ) : Parcelable
}
