1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
6pub struct SetTextFormatDto {
7 pub position: i64,
8 pub anchor: i64,
9 pub font_family: Option<String>,
10 pub font_point_size: Option<i64>,
11 pub font_weight: Option<i64>,
12 pub font_bold: Option<bool>,
13 pub font_italic: Option<bool>,
14 pub font_underline: Option<bool>,
15 pub font_overline: Option<bool>,
16 pub font_strikeout: Option<bool>,
17 pub letter_spacing: Option<i64>,
18 pub word_spacing: Option<i64>,
19 pub underline_style: Option<UnderlineStyle>,
20 pub vertical_alignment: Option<CharVerticalAlignment>,
21}
22
23#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
24pub enum UnderlineStyle {
25 #[default]
26 NoUnderline,
27 SingleUnderline,
28 DashUnderline,
29 DotLine,
30 DashDotLine,
31 DashDotDotLine,
32 WaveUnderline,
33 SpellCheckUnderline,
34}
35
36#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
37pub enum CharVerticalAlignment {
38 #[default]
39 Normal,
40 SuperScript,
41 SubScript,
42 Middle,
43 Bottom,
44 Top,
45 Baseline,
46}
47#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
48pub struct MergeTextFormatDto {
49 pub position: i64,
50 pub anchor: i64,
51 pub font_family: Option<String>,
52 pub font_bold: Option<bool>,
53 pub font_italic: Option<bool>,
54 pub font_underline: Option<bool>,
55 pub font_strikeout: Option<bool>,
56 pub vertical_alignment: Option<CharVerticalAlignment>,
57}
58#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
59pub struct SetBlockFormatDto {
60 pub position: i64,
61 pub anchor: i64,
62 pub alignment: Option<Alignment>,
63 pub heading_level: Option<i64>,
64 pub indent: Option<i64>,
65 pub marker: Option<MarkerType>,
66 pub line_height: Option<i64>,
67 pub non_breakable_lines: Option<bool>,
68 pub page_break_before: Option<bool>,
69 pub direction: Option<TextDirection>,
70 pub clear_direction: bool,
78 pub background_color: Option<String>,
79 pub is_code_block: Option<bool>,
80 pub code_language: Option<String>,
81 pub hyphenate: Option<bool>,
82 pub language: Option<String>,
83 pub top_margin: Option<i64>,
84 pub bottom_margin: Option<i64>,
85 pub left_margin: Option<i64>,
86 pub right_margin: Option<i64>,
87 pub text_indent: Option<i64>,
88}
89
90#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
91pub enum Alignment {
92 #[default]
93 Left,
94 Right,
95 Center,
96 Justify,
97}
98
99#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
100pub enum MarkerType {
101 #[default]
102 NoMarker,
103 Unchecked,
104 Checked,
105}
106
107#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
108pub enum TextDirection {
109 #[default]
110 LeftToRight,
111 RightToLeft,
112}
113#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
114pub struct SetFrameFormatDto {
115 pub position: i64,
116 pub anchor: i64,
117 pub frame_id: i64,
118 pub height: Option<i64>,
119 pub width: Option<i64>,
120 pub top_margin: Option<i64>,
121 pub bottom_margin: Option<i64>,
122 pub left_margin: Option<i64>,
123 pub right_margin: Option<i64>,
124 pub padding: Option<i64>,
125 pub border: Option<i64>,
126 pub is_blockquote: Option<bool>,
127}
128#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
129pub struct SetTableFormatDto {
130 pub table_id: i64,
131 pub border: Option<i64>,
132 pub cell_spacing: Option<i64>,
133 pub cell_padding: Option<i64>,
134 pub width: Option<i64>,
135 pub alignment: Option<Alignment>,
136}
137#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
138pub struct SetTableCellFormatDto {
139 pub cell_id: i64,
140 pub padding: Option<i64>,
141 pub border: Option<i64>,
142 pub vertical_alignment: Option<CellVerticalAlignment>,
143 pub background_color: Option<String>,
144}
145
146#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
147pub enum CellVerticalAlignment {
148 #[default]
149 Top,
150 Middle,
151 Bottom,
152}
153#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
154pub struct SetListFormatDto {
155 pub list_id: i64,
156 pub style: Option<ListStyle>,
157 pub indent: Option<i64>,
158 pub prefix: Option<String>,
159 pub suffix: Option<String>,
160}
161
162#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
163pub enum ListStyle {
164 #[default]
165 Disc,
166 Circle,
167 Square,
168 Decimal,
169 LowerAlpha,
170 UpperAlpha,
171 LowerRoman,
172 UpperRoman,
173}