/
alexm
/
Notes
Обзор
Документация
Войти
/
alexm
/
Notes
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/src/main/java/com/alex/notes/data/Mapper.kt
58 строк
2 KB
bolschoy
5.15
11 дек 2025, 21:11
11 дек 2025, 21:11
5264678
Код
Авторство
О чём код?
package com.alex.notes.data import com.alex.notes.domain.ContentItem import com.alex.notes.domain.Note fun Note.toDbModel(): NoteDbModel { return NoteDbModel(id, title, updatedAt, isPinned) } fun List<ContentItem>.toContentItemDbModels(noteId: Int): List<ContentItemDbModel> { return mapIndexed { index, contentItem -> when(contentItem) { is ContentItem.Image -> { ContentItemDbModel( noteId = noteId, contentType = ContentType.IMAGE, content = contentItem.url, order = index ) } is ContentItem.Text -> { ContentItemDbModel( noteId = noteId, contentType = ContentType.TEXT, content = contentItem.content, order = index ) } } } } fun List<ContentItemDbModel>.toContentItems(): List<ContentItem> { return map { contentItem -> when(contentItem.contentType) { ContentType.IMAGE -> { ContentItem.Image(contentItem.content) } ContentType.TEXT -> { ContentItem.Text(contentItem.content) } } } } fun NoteWithContentDbModel.toEntity(): Note { return Note( id = noteDbModel.id, title = noteDbModel.title, content = content.toContentItems(), updatedAt = noteDbModel.updatedAt, isPinned = noteDbModel.isPinned ) } fun List<NoteWithContentDbModel>.toEntities(): List<Note> { return map { it.toEntity() } }