whatsapp_cloud_api/models/
template_message.rs

1use serde::{Deserialize, Serialize};
2
3use super::component::Component;
4
5const DETERMINISTIC: &str = "deterministic";
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
8pub struct Template {
9    name: String,
10    language: Language,
11    components: Option<Vec<Component>>,
12}
13
14impl Template {
15    pub fn new(name: &str, language: &str) -> Self {
16        let language = Language::new(language);
17
18        Self {
19            name: name.into(),
20            language,
21            components: None,
22        }
23    }
24
25    pub fn with_components(name: &str, language: &str, components: Vec<Component>) -> Self {
26        let language = Language::new(language);
27
28        Self {
29            name: name.into(),
30            language,
31            components: Some(components),
32        }
33    }
34}
35
36#[derive(Clone, Debug, Serialize, Deserialize)]
37pub struct Language {
38    pub policy: String,
39    pub code: String,
40}
41
42impl Language {
43    pub fn new(code: &str) -> Language {
44        Self {
45            policy: DETERMINISTIC.into(),
46            code: code.into(),
47        }
48    }
49}