use tokio::sync::oneshot; use kordophone_db::models::{Conversation, Message}; use crate::daemon::settings::Settings; pub type Reply = oneshot::Sender; #[derive(Debug)] pub enum Event { /// Get the version of the daemon. GetVersion(Reply), /// Asynchronous event for syncing the conversation list with the server. SyncConversationList(Reply<()>), /// Asynchronous event for syncing all conversations with the server. SyncAllConversations(Reply<()>), /// Asynchronous event for syncing a single conversation with the server. SyncConversation(String, Reply<()>), /// Returns all known conversations from the database. GetAllConversations(Reply>), /// Returns all known settings from the database. GetAllSettings(Reply), /// Update settings in the database. UpdateSettings(Settings, Reply<()>), /// Returns all messages for a conversation from the database. /// Parameters: /// - conversation_id: The ID of the conversation to get messages for. /// - last_message_id: (optional) The ID of the last message to get. If None, all messages are returned. GetMessages(String, Option, Reply>), /// Delete all conversations from the database. DeleteAllConversations(Reply<()>), }