Private
Public Access
1
0

Fixes bug where updates can cause a sync loop

This commit is contained in:
2025-05-04 00:15:13 -07:00
parent 8e87c2bce2
commit 819b852c1f
3 changed files with 46 additions and 13 deletions

View File

@@ -3,6 +3,7 @@ use time::OffsetDateTime;
use uuid::Uuid;
use super::Identifiable;
use crate::model::message::Message;
pub type ConversationID = <Conversation as Identifiable>::ID;
@@ -24,6 +25,9 @@ pub struct Conversation {
#[serde(rename = "displayName")]
pub display_name: Option<String>,
#[serde(rename = "lastMessage")]
pub last_message: Option<Message>,
}
impl Conversation {
@@ -48,6 +52,7 @@ pub struct ConversationBuilder {
last_message_preview: Option<String>,
participant_display_names: Option<Vec<String>>,
display_name: Option<String>,
last_message: Option<Message>,
}
impl ConversationBuilder {
@@ -85,6 +90,11 @@ impl ConversationBuilder {
self
}
pub fn last_message(mut self, last_message: Message) -> Self {
self.last_message = Some(last_message);
self
}
pub fn build(self) -> Conversation {
Conversation {
guid: self.guid.unwrap_or(Uuid::new_v4().to_string()),
@@ -93,6 +103,7 @@ impl ConversationBuilder {
last_message_preview: self.last_message_preview,
participant_display_names: self.participant_display_names.unwrap_or_default(),
display_name: self.display_name,
last_message: self.last_message,
}
}
}