package com.suno.android.common_data.comments import com.suno.android.common_core_utils.Id import com.suno.android.common_core_utils.model.UserHandle import com.suno.android.common_data.mentions.UserMention import kotlin.time.Duration enum class CommentType { Clip, Hook, } /** * Unified client data model for comments, used by both clips and hooks. */ data class Comment( val id: Id, val type: CommentType, val mediaEntity: MediaEntity, val userId: String, val userDisplayName: String, val userHandle: UserHandle, val userAvatarUrl: String, val userCommentsBlocked: Boolean? = null, val content: String, val createdAt: String, val numLikes: Int, val parentId: Id? = null, val numReplies: Int? = null, val replies: List? = null, val replyContinuationToken: String? = null, val trackTimestamp: Duration? = null, val reactionType: String? = null, val userMentions: List? = null, ) data class CommentReply( val id: Id, val userId: String, val userDisplayName: String, val userHandle: UserHandle, val userAvatarUrl: String, val userCommentsBlocked: Boolean? = null, val content: String, val createdAt: String, val numLikes: Int, val parentId: Id? = null, val reactionType: String? = null, val userMentions: List? = null, ) data class CommentsResponse( val nextCursor: String?, val results: List, val allowComment: Boolean, val disableReason: String?, val totalCount: Int, ) data class CommentRepliesResponse( val replies: List, val replyContinuationToken: String?, val totalCount: Int?, )