package dev.lonami.talaria.data import uniffi.talaria.Dialog import uniffi.talaria.MessageAck import uniffi.talaria.MessagePreview import uniffi.talaria.getDialogs import java.time.Instant interface DialogRepository { fun loadDialogs(): List } class NativeDialogRepository : DialogRepository { override fun loadDialogs(): List { return getDialogs() } } class MockDialogRepository : DialogRepository { override fun loadDialogs(): List { val dialogs = mutableListOf() for (i in 0 until 10) { dialogs.add( Dialog( id = "$i", title = "Sample Dialog $i", lastMessage = if (i % 4 == 3) { null } else { MessagePreview( sender = if (i % 2 == 0) { "Sender A" } else { "Sender B" }, text = if (i % 3 == 2) { "Very Long Sample Message $i, with a Lot of Text, which makes it hard to Preview" } else { "Sample Message $i" }, date = Instant.now(), ack = when (i % 3) { 0 -> MessageAck.RECEIVED 1 -> MessageAck.SENT 2 -> MessageAck.SEEN else -> throw RuntimeException() } ) }, pinned = i < 4 ) ) } return dialogs } }