use common::entities::TextDirection;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SetTextFormatDto {
pub position: i64,
pub anchor: i64,
pub font_family: Option<String>,
pub font_point_size: Option<i64>,
pub font_weight: Option<i64>,
pub font_bold: Option<bool>,
pub font_italic: Option<bool>,
pub font_underline: Option<bool>,
pub font_overline: Option<bool>,
pub font_strikeout: Option<bool>,
pub letter_spacing: Option<i64>,
pub word_spacing: Option<i64>,
pub underline_style: Option<UnderlineStyle>,
pub vertical_alignment: Option<CharVerticalAlignment>,
}
#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
pub enum UnderlineStyle {
#[default]
NoUnderline,
SingleUnderline,
DashUnderline,
DotLine,
DashDotLine,
DashDotDotLine,
WaveUnderline,
SpellCheckUnderline,
}
#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
pub enum CharVerticalAlignment {
#[default]
Normal,
SuperScript,
SubScript,
Middle,
Bottom,
Top,
Baseline,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct MergeTextFormatDto {
pub position: i64,
pub anchor: i64,
pub font_family: Option<String>,
pub font_bold: Option<bool>,
pub font_italic: Option<bool>,
pub font_underline: Option<bool>,
pub font_strikeout: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SetBlockFormatDto {
pub position: i64,
pub anchor: i64,
pub alignment: Option<Alignment>,
pub heading_level: Option<i64>,
pub indent: Option<i64>,
pub marker: Option<MarkerType>,
pub line_height: Option<i64>,
pub non_breakable_lines: Option<bool>,
pub direction: Option<TextDirection>,
pub background_color: Option<String>,
pub is_code_block: Option<bool>,
pub code_language: Option<String>,
pub top_margin: Option<i64>,
pub bottom_margin: Option<i64>,
pub left_margin: Option<i64>,
pub right_margin: Option<i64>,
}
#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
pub enum Alignment {
#[default]
Left,
Right,
Center,
Justify,
}
#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
pub enum MarkerType {
#[default]
NoMarker,
Unchecked,
Checked,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SetFrameFormatDto {
pub position: i64,
pub anchor: i64,
pub frame_id: i64,
pub height: Option<i64>,
pub width: Option<i64>,
pub top_margin: Option<i64>,
pub bottom_margin: Option<i64>,
pub left_margin: Option<i64>,
pub right_margin: Option<i64>,
pub padding: Option<i64>,
pub border: Option<i64>,
pub is_blockquote: Option<bool>,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SetTableFormatDto {
pub table_id: i64,
pub border: Option<i64>,
pub cell_spacing: Option<i64>,
pub cell_padding: Option<i64>,
pub width: Option<i64>,
pub alignment: Option<Alignment>,
}
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SetTableCellFormatDto {
pub cell_id: i64,
pub padding: Option<i64>,
pub border: Option<i64>,
pub vertical_alignment: Option<CellVerticalAlignment>,
pub background_color: Option<String>,
}
pub use common::entities::ListStyle;
#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct SetListFormatDto {
pub list_id: i64,
pub style: Option<ListStyle>,
pub indent: Option<i64>,
pub prefix: Option<String>,
pub suffix: Option<String>,
}
#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
pub enum CellVerticalAlignment {
#[default]
Top,
Middle,
Bottom,
}