2024-06-03 06:27:28 +00:00
|
|
|
use flowy_derive::ProtoBuf_Enum;
|
|
|
|
use flowy_notification::NotificationBuilder;
|
|
|
|
|
|
|
|
const CHAT_OBSERVABLE_SOURCE: &str = "Chat";
|
|
|
|
|
|
|
|
#[derive(ProtoBuf_Enum, Debug, Default)]
|
|
|
|
pub enum ChatNotification {
|
|
|
|
#[default]
|
|
|
|
Unknown = 0,
|
|
|
|
DidLoadLatestChatMessage = 1,
|
|
|
|
DidLoadPrevChatMessage = 2,
|
|
|
|
DidReceiveChatMessage = 3,
|
|
|
|
StreamChatMessageError = 4,
|
2024-06-09 06:02:32 +00:00
|
|
|
FinishStreaming = 5,
|
2024-07-08 05:19:13 +00:00
|
|
|
ChatStateUpdated = 6,
|
2024-06-03 06:27:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
impl std::convert::From<ChatNotification> for i32 {
|
|
|
|
fn from(notification: ChatNotification) -> Self {
|
|
|
|
notification as i32
|
|
|
|
}
|
|
|
|
}
|
|
|
|
impl std::convert::From<i32> for ChatNotification {
|
|
|
|
fn from(notification: i32) -> Self {
|
|
|
|
match notification {
|
|
|
|
1 => ChatNotification::DidLoadLatestChatMessage,
|
|
|
|
2 => ChatNotification::DidLoadPrevChatMessage,
|
|
|
|
3 => ChatNotification::DidReceiveChatMessage,
|
|
|
|
4 => ChatNotification::StreamChatMessageError,
|
2024-06-09 06:02:32 +00:00
|
|
|
5 => ChatNotification::FinishStreaming,
|
2024-07-08 05:19:13 +00:00
|
|
|
6 => ChatNotification::ChatStateUpdated,
|
2024-06-03 06:27:28 +00:00
|
|
|
_ => ChatNotification::Unknown,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[tracing::instrument(level = "trace")]
|
|
|
|
pub(crate) fn send_notification(id: &str, ty: ChatNotification) -> NotificationBuilder {
|
|
|
|
NotificationBuilder::new(id, ty, CHAT_OBSERVABLE_SOURCE)
|
|
|
|
}
|