backend/model/entity/
drawing_properties.rs

1use crate::model::r#enum::fill_pattern_type::FillPatternType;
2use crate::schema::{
3    bezier_polygon_points, bezier_polygon_props, ellipse_props, free_line_points, free_line_props,
4    image_props, label_text_props, rectangle_props,
5};
6use diesel::{AsChangeset, Identifiable, Insertable, Queryable};
7use uuid::Uuid;
8
9#[derive(Debug, Clone, Identifiable, Queryable, Insertable, AsChangeset)]
10#[diesel(table_name = bezier_polygon_props)]
11#[diesel(primary_key(drawings_id))]
12pub struct BezierPolygonEntity {
13    pub drawings_id: Uuid,
14    pub color: String,
15    pub fill_pattern: FillPatternType,
16    pub stroke_width: i32,
17}
18
19#[derive(Debug, Clone, Identifiable, Queryable, Insertable)]
20#[diesel(table_name = bezier_polygon_points)]
21#[diesel(primary_key(id, idx))]
22pub struct BezierPolygonPointEntity {
23    pub id: Uuid,
24    pub idx: i32,
25    pub x: i32,
26    pub y: i32,
27}
28
29#[derive(Debug, Clone, Identifiable, Queryable, Insertable, AsChangeset)]
30#[diesel(table_name = ellipse_props)]
31#[diesel(primary_key(drawings_id))]
32pub struct EllipseEntity {
33    pub drawings_id: Uuid,
34    pub axis_x: i32,
35    pub axis_y: i32,
36    pub color: String,
37    pub fill_pattern: FillPatternType,
38    pub stroke_width: i32,
39}
40
41#[derive(Debug, Clone, Identifiable, Queryable, Insertable, AsChangeset)]
42#[diesel(table_name = free_line_props)]
43#[diesel(primary_key(drawings_id))]
44pub struct FreeLineEntity {
45    pub drawings_id: Uuid,
46    pub color: String,
47    pub fill_pattern: FillPatternType,
48    pub stroke_width: i32,
49}
50
51#[derive(Debug, Clone, Identifiable, Queryable, Insertable)]
52#[diesel(table_name = free_line_points)]
53#[diesel(primary_key(id, idx))]
54pub struct FreeLinePointEntity {
55    pub id: Uuid,
56    pub idx: i32,
57    pub x: i32,
58    pub y: i32,
59}
60
61#[derive(Debug, Clone, Identifiable, Queryable, Insertable, AsChangeset)]
62#[diesel(table_name = label_text_props)]
63#[diesel(primary_key(drawings_id))]
64pub struct LabelTextEntity {
65    pub drawings_id: Uuid,
66    pub label_text: String,
67    pub width: i32,
68    pub height: i32,
69    pub color: String,
70}
71
72#[derive(Debug, Clone, Identifiable, Queryable, Insertable, AsChangeset)]
73#[diesel(table_name = rectangle_props)]
74#[diesel(primary_key(drawings_id))]
75pub struct RectangleEntity {
76    pub drawings_id: Uuid,
77    pub width: i32,
78    pub height: i32,
79    pub color: String,
80    pub fill_pattern: FillPatternType,
81    pub stroke_width: i32,
82}
83
84#[derive(Debug, Clone, Identifiable, Queryable, Insertable, AsChangeset)]
85#[diesel(table_name = image_props)]
86#[diesel(primary_key(drawings_id))]
87pub struct ImageEntity {
88    pub drawings_id: Uuid,
89    pub file_path: String,
90}