Ответы, аудио, голосовые

This commit is contained in:
Халимов Рустам
2026-04-14 12:29:32 +03:00
parent 58bbdae26c
commit d7e75797ef
16 changed files with 553 additions and 282 deletions
@@ -57,12 +57,8 @@ class ChatRepositoryImpl @Inject constructor(
}
}
// Mappers
fun ChatDto.toDomain(currentUserId: String, baseUrl: String): Chat {
// Если это личный чат и имя пустое, ищем имя собеседника в списке участников
val chatName = name ?: if (type == "personal") {
members.firstOrNull { it.userId != currentUserId }?.user?.displayName ?: "Unknown Chat"
} else "Group Chat"
@@ -98,17 +94,26 @@ fun MessageDto.toDomain(baseUrl: String): Message {
return Message(
id = id,
chatId = chatId,
senderId = senderId,
senderName = sender.displayName,
senderAvatar = sender.avatarUrl?.ensureAbsoluteUrl(baseUrl),
chatId = chatId ?: "",
senderId = senderId ?: "",
senderName = sender?.displayName ?: "Unknown",
senderAvatar = sender?.avatarUrl?.ensureAbsoluteUrl(baseUrl),
content = content,
sequenceId = sequenceId,
createdAt = createdAt,
media = media.map { it.url.ensureAbsoluteUrl(baseUrl) },
mediaUrl = media.firstOrNull()?.url?.ensureAbsoluteUrl(baseUrl),
sequenceId = sequenceId ?: 0,
createdAt = createdAt ?: "",
media = media.map {
chats.domain.model.Media(
id = it.id,
type = it.type,
url = it.url.ensureAbsoluteUrl(baseUrl),
filename = it.filename,
size = it.size,
duration = it.duration
)
},
mediaType = domainMediaType,
reactions = reactions?.associate { it.emoji to it.count } ?: emptyMap()
reactions = reactions?.associate { it.emoji to it.count } ?: emptyMap(),
replyTo = replyTo?.toDomain(baseUrl)
)
}
@@ -121,4 +126,3 @@ fun String.ensureAbsoluteUrl(baseUrl: String): String {
"$base$path"
}
}