whiteboardlib/jsonb/
board_action.rsuse serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct BoardAction {
pub board_id: Uuid,
pub action: String,
pub objects: Vec<BoardFigure>
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct Point {
pub x: f32,
pub y: f32,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct BoardFigure {
pub id: Uuid,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub type_str: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub angle: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub skew_x: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub skew_y: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scale_x: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scale_y: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub left: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub top: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub points: Option<Vec<Point>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub height: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub radius_x: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub radius_y: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fill_color: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stroke_color: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stroke_width: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stroke_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub font_size: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub round: Option<i32>,
}