late/models/
create_broadcast_request.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateBroadcastRequest {
16 #[serde(rename = "profileId")]
17 pub profile_id: String,
18 #[serde(rename = "accountId")]
19 pub account_id: String,
20 #[serde(rename = "platform")]
21 pub platform: Platform,
22 #[serde(rename = "name")]
23 pub name: String,
24 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
25 pub description: Option<String>,
26 #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
27 pub message: Option<Box<models::CreateBroadcastRequestMessage>>,
28 #[serde(rename = "template", skip_serializing_if = "Option::is_none")]
29 pub template: Option<Box<models::CreateBroadcastRequestTemplate>>,
30 #[serde(rename = "segmentFilters", skip_serializing_if = "Option::is_none")]
31 pub segment_filters: Option<Box<models::CreateBroadcastRequestSegmentFilters>>,
32}
33
34impl CreateBroadcastRequest {
35 pub fn new(
36 profile_id: String,
37 account_id: String,
38 platform: Platform,
39 name: String,
40 ) -> CreateBroadcastRequest {
41 CreateBroadcastRequest {
42 profile_id,
43 account_id,
44 platform,
45 name,
46 description: None,
47 message: None,
48 template: None,
49 segment_filters: None,
50 }
51 }
52}
53#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
55pub enum Platform {
56 #[serde(rename = "instagram")]
57 Instagram,
58 #[serde(rename = "facebook")]
59 Facebook,
60 #[serde(rename = "telegram")]
61 Telegram,
62 #[serde(rename = "twitter")]
63 Twitter,
64 #[serde(rename = "bluesky")]
65 Bluesky,
66 #[serde(rename = "reddit")]
67 Reddit,
68 #[serde(rename = "whatsapp")]
69 Whatsapp,
70}
71
72impl Default for Platform {
73 fn default() -> Platform {
74 Self::Instagram
75 }
76}