1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
pub struct Call {
    /// Message text of the call
    pub text: String,

    /// Time at which the call was sent
    pub timestamp: Option<DateTime<Utc>>,

    /// User who submitted the call
    #[serde(rename = "ownerName")]
    pub sender: Option<String>,

    /// Call signs of this calls recipients
    #[serde(rename = "callSignNames")]
    pub recipients: Vec<String>,

    /// Names of transmitter groups used to transmit this call
    #[serde(rename = "transmitterGroupNames")]
    pub transmitter_groups: Vec<String>,

    /// Flag indicating if this call was sent with high priority
    pub emergency: bool,
}

impl Call {
    pub fn new(text: String, recipients: Vec<String>, transmitter_groups: Vec<String>) -> Self {
        Self {
            text,
            timestamp: None,
            sender: None,
            recipients,
            transmitter_groups,
            emergency: false,
        }
    }
}