Skip to main content

text_document_common/
entities.rs

1// Generated by Qleany v1.5.6 from common_entities.tera
2
3use crate::types::EntityId;
4use crate::types::HasId;
5use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
8pub struct Root {
9    pub id: EntityId,
10    pub created_at: chrono::DateTime<chrono::Utc>,
11    pub updated_at: chrono::DateTime<chrono::Utc>,
12    pub document: EntityId,
13}
14
15impl HasId for Root {
16    fn id(&self) -> EntityId {
17        self.id
18    }
19}
20
21#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
22pub struct Document {
23    pub id: EntityId,
24    pub created_at: chrono::DateTime<chrono::Utc>,
25    pub updated_at: chrono::DateTime<chrono::Utc>,
26    pub title: String,
27    pub frames: Vec<EntityId>,
28    pub text_direction: TextDirection,
29    pub default_wrap_mode: WrapMode,
30    pub resources: Vec<EntityId>,
31    pub lists: Vec<EntityId>,
32    pub tables: Vec<EntityId>,
33    pub character_count: i64,
34    pub block_count: i64,
35}
36
37impl HasId for Document {
38    fn id(&self) -> EntityId {
39        self.id
40    }
41}
42#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
43pub enum TextDirection {
44    #[default]
45    LeftToRight,
46    RightToLeft,
47}
48#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
49pub enum WrapMode {
50    #[default]
51    NoWrap,
52    WordWrap,
53    WrapAnywhere,
54    WrapAtWordBoundaryOrAnywhere,
55}
56
57#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
58pub struct Frame {
59    pub id: EntityId,
60    pub created_at: chrono::DateTime<chrono::Utc>,
61    pub updated_at: chrono::DateTime<chrono::Utc>,
62    pub parent_frame: Option<EntityId>,
63    pub blocks: Vec<EntityId>,
64    pub child_order: Vec<i64>,
65    pub fmt_height: Option<i64>,
66    pub fmt_width: Option<i64>,
67    pub fmt_top_margin: Option<i64>,
68    pub fmt_bottom_margin: Option<i64>,
69    pub fmt_left_margin: Option<i64>,
70    pub fmt_right_margin: Option<i64>,
71    pub fmt_padding: Option<i64>,
72    pub fmt_border: Option<i64>,
73    pub fmt_position: Option<FramePosition>,
74    pub table: Option<EntityId>,
75}
76
77impl HasId for Frame {
78    fn id(&self) -> EntityId {
79        self.id
80    }
81}
82#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
83pub enum FramePosition {
84    #[default]
85    InFlow,
86    FloatLeft,
87    FloatRight,
88}
89
90#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
91pub struct Block {
92    pub id: EntityId,
93    pub created_at: chrono::DateTime<chrono::Utc>,
94    pub updated_at: chrono::DateTime<chrono::Utc>,
95    pub elements: Vec<EntityId>,
96    pub list: Option<EntityId>,
97    pub text_length: i64,
98    pub document_position: i64,
99    pub plain_text: String,
100    pub fmt_alignment: Option<Alignment>,
101    pub fmt_top_margin: Option<i64>,
102    pub fmt_bottom_margin: Option<i64>,
103    pub fmt_left_margin: Option<i64>,
104    pub fmt_right_margin: Option<i64>,
105    pub fmt_heading_level: Option<i64>,
106    pub fmt_indent: Option<i64>,
107    pub fmt_text_indent: Option<i64>,
108    pub fmt_marker: Option<MarkerType>,
109    pub fmt_tab_positions: Vec<i64>,
110}
111
112impl HasId for Block {
113    fn id(&self) -> EntityId {
114        self.id
115    }
116}
117#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
118pub enum Alignment {
119    #[default]
120    Left,
121    Right,
122    Center,
123    Justify,
124}
125#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
126pub enum MarkerType {
127    #[default]
128    NoMarker,
129    Unchecked,
130    Checked,
131}
132
133#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
134pub struct InlineElement {
135    pub id: EntityId,
136    pub created_at: chrono::DateTime<chrono::Utc>,
137    pub updated_at: chrono::DateTime<chrono::Utc>,
138    pub content: InlineContent,
139    pub fmt_font_family: Option<String>,
140    pub fmt_font_point_size: Option<i64>,
141    pub fmt_font_weight: Option<i64>,
142    pub fmt_font_bold: Option<bool>,
143    pub fmt_font_italic: Option<bool>,
144    pub fmt_font_underline: Option<bool>,
145    pub fmt_font_overline: Option<bool>,
146    pub fmt_font_strikeout: Option<bool>,
147    pub fmt_letter_spacing: Option<i64>,
148    pub fmt_word_spacing: Option<i64>,
149    pub fmt_anchor_href: Option<String>,
150    pub fmt_anchor_names: Vec<String>,
151    pub fmt_is_anchor: Option<bool>,
152    pub fmt_tooltip: Option<String>,
153    pub fmt_underline_style: Option<UnderlineStyle>,
154    pub fmt_vertical_alignment: Option<CharVerticalAlignment>,
155}
156
157impl HasId for InlineElement {
158    fn id(&self) -> EntityId {
159        self.id
160    }
161}
162#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
163pub enum InlineContent {
164    #[default]
165    Empty,
166    Text(String),
167    Image {
168        name: String,
169        width: i64,
170        height: i64,
171        quality: i64,
172    },
173}
174#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
175pub enum UnderlineStyle {
176    #[default]
177    NoUnderline,
178    SingleUnderline,
179    DashUnderline,
180    DotLine,
181    DashDotLine,
182    DashDotDotLine,
183    WaveUnderline,
184    SpellCheckUnderline,
185}
186#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
187pub enum CharVerticalAlignment {
188    #[default]
189    Normal,
190    SuperScript,
191    SubScript,
192    Middle,
193    Bottom,
194    Top,
195    Baseline,
196}
197
198#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
199pub struct List {
200    pub id: EntityId,
201    pub created_at: chrono::DateTime<chrono::Utc>,
202    pub updated_at: chrono::DateTime<chrono::Utc>,
203    pub style: ListStyle,
204    pub indent: i64,
205    pub prefix: String,
206    pub suffix: String,
207}
208
209impl HasId for List {
210    fn id(&self) -> EntityId {
211        self.id
212    }
213}
214#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
215pub enum ListStyle {
216    #[default]
217    Disc,
218    Circle,
219    Square,
220    Decimal,
221    LowerAlpha,
222    UpperAlpha,
223    LowerRoman,
224    UpperRoman,
225}
226
227#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
228pub struct Resource {
229    pub id: EntityId,
230    pub created_at: chrono::DateTime<chrono::Utc>,
231    pub updated_at: chrono::DateTime<chrono::Utc>,
232    pub resource_type: ResourceType,
233    pub name: String,
234    pub url: String,
235    pub mime_type: String,
236    pub data_base64: String,
237}
238
239impl HasId for Resource {
240    fn id(&self) -> EntityId {
241        self.id
242    }
243}
244#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
245pub enum ResourceType {
246    #[default]
247    Image,
248    StyleSheet,
249    Other,
250}
251
252#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
253pub struct Table {
254    pub id: EntityId,
255    pub created_at: chrono::DateTime<chrono::Utc>,
256    pub updated_at: chrono::DateTime<chrono::Utc>,
257    pub cells: Vec<EntityId>,
258    pub rows: i64,
259    pub columns: i64,
260    pub column_widths: Vec<i64>,
261    pub fmt_border: Option<i64>,
262    pub fmt_cell_spacing: Option<i64>,
263    pub fmt_cell_padding: Option<i64>,
264    pub fmt_width: Option<i64>,
265    pub fmt_alignment: Option<Alignment>,
266}
267
268impl HasId for Table {
269    fn id(&self) -> EntityId {
270        self.id
271    }
272}
273
274#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
275pub struct TableCell {
276    pub id: EntityId,
277    pub created_at: chrono::DateTime<chrono::Utc>,
278    pub updated_at: chrono::DateTime<chrono::Utc>,
279    pub row: i64,
280    pub column: i64,
281    pub row_span: i64,
282    pub column_span: i64,
283    pub cell_frame: Option<EntityId>,
284    pub fmt_padding: Option<i64>,
285    pub fmt_border: Option<i64>,
286    pub fmt_vertical_alignment: Option<CellVerticalAlignment>,
287    pub fmt_background_color: Option<String>,
288}
289
290impl HasId for TableCell {
291    fn id(&self) -> EntityId {
292        self.id
293    }
294}
295#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
296pub enum CellVerticalAlignment {
297    #[default]
298    Top,
299    Middle,
300    Bottom,
301}