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}