push_messaging/client/
notification.rs

1use builder_pattern::Builder;
2use serde::{Serialize, Deserialize};
3use serde_with::skip_serializing_none;
4
5#[skip_serializing_none]
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Builder)]
7pub struct Notification {
8    #[into]
9    pub title: String,
10    #[into]
11    #[default(None)]
12    pub body: Option<String>,
13    #[into]
14    #[default(flutter_notification_click())]
15    pub click_action: String,
16    #[into]
17    #[default(None)]
18    pub badge: Option<String>,
19    #[into]
20    #[default(None)]
21    pub body_loc_args: Option<Vec<String>>,
22    #[into]
23    #[default(None)]
24    pub body_loc_key: Option<String>,
25
26    #[into]
27    #[default(None)]
28    pub color: Option<String>,
29    #[into]
30    #[default(None)]
31    pub icon: Option<String>,
32    #[into]
33    #[default(None)]
34    pub sound: Option<String>,
35    #[into]
36    #[default(None)]
37    pub tag: Option<String>,
38
39    #[into]
40    #[default(None)]
41    pub title_loc_args: Option<Vec<String>>,
42    #[into]
43    #[default(None)]
44    pub title_loc_key: Option<String>,
45}
46
47fn flutter_notification_click() -> String {
48    "FLUTTER_NOTIFICATION_CLICK".to_string()
49}