whatsapp_cloud_api/models/
template_message.rs1use 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}