forem_openapi_client/models/
display_ad.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct DisplayAd {
15 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
17 pub id: Option<i32>,
18 #[serde(rename = "name")]
20 pub name: String,
21 #[serde(rename = "body_markdown")]
23 pub body_markdown: String,
24 #[serde(rename = "approved", skip_serializing_if = "Option::is_none")]
26 pub approved: Option<bool>,
27 #[serde(rename = "published", skip_serializing_if = "Option::is_none")]
29 pub published: Option<bool>,
30 #[serde(
32 rename = "organization_id",
33 default,
34 with = "::serde_with::rust::double_option",
35 skip_serializing_if = "Option::is_none"
36 )]
37 pub organization_id: Option<Option<i32>>,
38 #[serde(
40 rename = "creator_id",
41 default,
42 with = "::serde_with::rust::double_option",
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub creator_id: Option<Option<i32>>,
46 #[serde(rename = "placement_area")]
48 pub placement_area: PlacementArea,
49 #[serde(rename = "tag_list", skip_serializing_if = "Option::is_none")]
51 pub tag_list: Option<String>,
52 #[serde(
54 rename = "article_exclude_ids",
55 default,
56 with = "::serde_with::rust::double_option",
57 skip_serializing_if = "Option::is_none"
58 )]
59 pub article_exclude_ids: Option<Option<String>>,
60 #[serde(rename = "display_to", skip_serializing_if = "Option::is_none")]
62 pub display_to: Option<DisplayTo>,
63 #[serde(rename = "type_of", skip_serializing_if = "Option::is_none")]
65 pub type_of: Option<TypeOf>,
66}
67
68impl DisplayAd {
69 pub fn new(name: String, body_markdown: String, placement_area: PlacementArea) -> DisplayAd {
71 DisplayAd {
72 id: None,
73 name,
74 body_markdown,
75 approved: None,
76 published: None,
77 organization_id: None,
78 creator_id: None,
79 placement_area,
80 tag_list: None,
81 article_exclude_ids: None,
82 display_to: None,
83 type_of: None,
84 }
85 }
86}
87
88#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
90pub enum PlacementArea {
91 #[serde(rename = "sidebar_left")]
92 SidebarLeft,
93 #[serde(rename = "sidebar_left_2")]
94 SidebarLeft2,
95 #[serde(rename = "sidebar_right")]
96 SidebarRight,
97 #[serde(rename = "post_sidebar")]
98 PostSidebar,
99 #[serde(rename = "post_comments")]
100 PostComments,
101}
102
103impl Default for PlacementArea {
104 fn default() -> PlacementArea {
105 Self::SidebarLeft
106 }
107}
108#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
110pub enum DisplayTo {
111 #[serde(rename = "all")]
112 All,
113 #[serde(rename = "logged_in")]
114 LoggedIn,
115 #[serde(rename = "logged_out")]
116 LoggedOut,
117}
118
119impl Default for DisplayTo {
120 fn default() -> DisplayTo {
121 Self::All
122 }
123}
124#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
126pub enum TypeOf {
127 #[serde(rename = "in_house")]
128 InHouse,
129 #[serde(rename = "community")]
130 Community,
131 #[serde(rename = "external")]
132 External,
133}
134
135impl Default for TypeOf {
136 fn default() -> TypeOf {
137 Self::InHouse
138 }
139}