backend/
schema.rs

1// @generated automatically by Diesel CLI.
2
3pub mod sql_types {
4    #[derive(diesel::sql_types::SqlType)]
5    #[diesel(postgres_type(name = "heatmap_color"))]
6    pub struct HeatmapColor;
7
8    #[derive(diesel::sql_types::SqlType)]
9    #[diesel(postgres_type(name = "drawing_shape_type"))]
10    pub struct DrawingShapeType;
11
12    #[derive(diesel::sql_types::SqlType)]
13    #[diesel(postgres_type(name = "fill_pattern_type"))]
14    pub struct FillPatternType;
15
16    #[derive(diesel::sql_types::SqlType)]
17    #[diesel(postgres_type(name = "herbaceous_or_woody"))]
18    pub struct HerbaceousOrWoody;
19
20    #[derive(diesel::sql_types::SqlType)]
21    #[diesel(postgres_type(name = "layer_type"))]
22    pub struct LayerType;
23
24    #[derive(diesel::sql_types::SqlType)]
25    #[diesel(postgres_type(name = "life_cycle"))]
26    pub struct LifeCycle;
27
28    #[derive(diesel::sql_types::SqlType)]
29    #[diesel(postgres_type(name = "light_requirement"))]
30    pub struct LightRequirement;
31
32    #[derive(diesel::sql_types::SqlType)]
33    #[diesel(postgres_type(name = "privacy_access_control"))]
34    pub struct PrivacyAccessControl;
35
36    #[derive(diesel::sql_types::SqlType)]
37    #[diesel(postgres_type(name = "quality"))]
38    pub struct Quality;
39
40    #[derive(diesel::sql_types::SqlType)]
41    #[diesel(postgres_type(name = "quantity"))]
42    pub struct Quantity;
43
44    #[derive(diesel::sql_types::SqlType)]
45    #[diesel(postgres_type(name = "shade"))]
46    pub struct Shade;
47
48    #[derive(diesel::sql_types::SqlType)]
49    #[diesel(postgres_type(name = "soil_texture"))]
50    pub struct SoilTexture;
51
52    #[derive(diesel::sql_types::SqlType)]
53    #[diesel(postgres_type(name = "spatial_relation_type"))]
54    pub struct SpatialRelationType;
55
56    #[derive(diesel::sql_types::SqlType)]
57    #[diesel(postgres_type(name = "taxonomic_rank"))]
58    pub struct TaxonomicRank;
59
60    #[derive(diesel::sql_types::SqlType)]
61    #[diesel(postgres_type(name = "temporal_relation_effect"))]
62    pub struct TemporalRelationEffect;
63
64    #[derive(diesel::sql_types::SqlType)]
65    #[diesel(postgres_type(name = "water_requirement"))]
66    pub struct WaterRequirement;
67}
68
69diesel::table! {
70    use postgis_diesel::sql_types::Geography;
71    use diesel::sql_types::*;
72
73    application_settings (id) {
74        id -> Int4,
75        key -> Text,
76        value -> Text,
77    }
78}
79
80diesel::table! {
81    use postgis_diesel::sql_types::Geography;
82    use diesel::sql_types::*;
83
84    base_layer_images (id) {
85        id -> Uuid,
86        path -> Text,
87        rotation -> Int4,
88        scale -> Int4,
89        layer_id -> Uuid,
90        x -> Int4,
91        y -> Int4,
92    }
93}
94
95diesel::table! {
96    use postgis_diesel::sql_types::Geography;
97    use diesel::sql_types::*;
98
99    bezier_polygon_points (id, idx) {
100        id -> Uuid,
101        idx -> Int4,
102        x -> Int4,
103        y -> Int4,
104    }
105}
106
107diesel::table! {
108    use postgis_diesel::sql_types::Geography;
109    use diesel::sql_types::*;
110    use super::sql_types::FillPatternType;
111
112    bezier_polygon_props (drawings_id) {
113        drawings_id -> Uuid,
114        color -> Text,
115        fill_pattern -> FillPatternType,
116        stroke_width -> Int4,
117    }
118}
119
120diesel::table! {
121    use postgis_diesel::sql_types::Geography;
122    use diesel::sql_types::*;
123    use super::sql_types::DrawingShapeType;
124
125    drawings (id) {
126        id -> Uuid,
127        shape_type -> DrawingShapeType,
128        add_date -> Nullable<Date>,
129        remove_date -> Nullable<Date>,
130        rotation -> Int4,
131        scale_x -> Int4,
132        scale_y -> Int4,
133        x -> Int4,
134        y -> Int4,
135        layer_id -> Uuid,
136        notes -> Text,
137        created_at -> Timestamp,
138        modified_at -> Timestamp,
139        created_by -> Uuid,
140        modified_by -> Uuid,
141    }
142}
143
144diesel::table! {
145    use postgis_diesel::sql_types::Geography;
146    use diesel::sql_types::*;
147    use super::sql_types::FillPatternType;
148
149    ellipse_props (drawings_id) {
150        drawings_id -> Uuid,
151        axis_x -> Int4,
152        axis_y -> Int4,
153        color -> Text,
154        fill_pattern -> FillPatternType,
155        stroke_width -> Int4,
156    }
157}
158
159diesel::table! {
160    use postgis_diesel::sql_types::Geography;
161    use diesel::sql_types::*;
162
163    free_line_points (id, idx) {
164        id -> Uuid,
165        idx -> Int4,
166        x -> Int4,
167        y -> Int4,
168    }
169}
170
171diesel::table! {
172    use postgis_diesel::sql_types::Geography;
173    use diesel::sql_types::*;
174    use super::sql_types::FillPatternType;
175
176    free_line_props (drawings_id) {
177        drawings_id -> Uuid,
178        color -> Text,
179        fill_pattern -> FillPatternType,
180        stroke_width -> Int4,
181    }
182}
183
184diesel::table! {
185    use postgis_diesel::sql_types::Geography;
186    use diesel::sql_types::*;
187
188    guided_tours (user_id) {
189        user_id -> Uuid,
190        editor_tour_completed -> Bool,
191        editor_tour_paused -> Bool,
192    }
193}
194
195diesel::table! {
196    use postgis_diesel::sql_types::Geography;
197    use postgis_diesel::sql_types::Geometry;
198    use diesel::sql_types::*;
199    use super::sql_types::WaterRequirement;
200
201    hydrologies (id) {
202        id -> Uuid,
203        layer_id -> Uuid,
204        water_requirement -> WaterRequirement,
205        geometry -> Geometry,
206        add_date -> Nullable<Date>,
207        remove_date -> Nullable<Date>,
208        notes -> Text,
209        created_at -> Timestamp,
210        modified_at -> Timestamp,
211        created_by -> Uuid,
212        modified_by -> Uuid,
213    }
214}
215
216diesel::table! {
217    use postgis_diesel::sql_types::Geography;
218    use diesel::sql_types::*;
219
220    image_props (drawings_id) {
221        drawings_id -> Uuid,
222        file_path -> Text,
223    }
224}
225
226diesel::table! {
227    use postgis_diesel::sql_types::Geography;
228    use diesel::sql_types::*;
229
230    label_text_props (drawings_id) {
231        drawings_id -> Uuid,
232        label_text -> Text,
233        width -> Int4,
234        height -> Int4,
235        color -> Text,
236    }
237}
238
239diesel::table! {
240    use postgis_diesel::sql_types::Geography;
241    use diesel::sql_types::*;
242    use super::sql_types::LayerType;
243
244    layers (id) {
245        map_id -> Int8,
246        #[sql_name = "type"]
247        type_ -> LayerType,
248        name -> Text,
249        id -> Uuid,
250        marked_deleted -> Nullable<Timestamp>,
251        order_index -> Int4,
252    }
253}
254
255diesel::table! {
256    use postgis_diesel::sql_types::Geography;
257    use diesel::sql_types::*;
258
259    map_collaborators (map_id, user_id) {
260        map_id -> Int8,
261        user_id -> Uuid,
262        created_at -> Timestamp,
263    }
264}
265
266diesel::table! {
267    use postgis_diesel::sql_types::Geography;
268    use postgis_diesel::sql_types::Geometry;
269    use diesel::sql_types::*;
270    use super::sql_types::PrivacyAccessControl;
271
272    maps (id) {
273        id -> Int8,
274        name -> Text,
275        deletion_date -> Nullable<Date>,
276        last_visit -> Nullable<Date>,
277        is_inactive -> Bool,
278        zoom_factor -> Int2,
279        privacy -> PrivacyAccessControl,
280        description -> Nullable<Text>,
281        location -> Nullable<Geography>,
282        created_by -> Uuid,
283        geometry -> Geometry,
284        created_at -> Timestamp,
285        modified_at -> Timestamp,
286        modified_by -> Uuid,
287    }
288}
289
290diesel::table! {
291    use postgis_diesel::sql_types::Geography;
292    use diesel::sql_types::*;
293
294    plantings (id) {
295        id -> Uuid,
296        plant_id -> Int8,
297        x -> Int4,
298        y -> Int4,
299        size_x -> Int4,
300        size_y -> Int4,
301        rotation -> Int4,
302        add_date -> Nullable<Date>,
303        remove_date -> Nullable<Date>,
304        seed_id -> Nullable<Int8>,
305        is_area -> Bool,
306        notes -> Text,
307        created_at -> Timestamp,
308        modified_at -> Timestamp,
309        created_by -> Uuid,
310        modified_by -> Uuid,
311        layer_id -> Uuid,
312        height -> Nullable<Int4>,
313    }
314}
315
316diesel::table! {
317    use postgis_diesel::sql_types::Geography;
318    use diesel::sql_types::*;
319    use super::sql_types::Shade;
320    use super::sql_types::SoilTexture;
321    use super::sql_types::HerbaceousOrWoody;
322    use super::sql_types::LifeCycle;
323    use super::sql_types::LightRequirement;
324    use super::sql_types::WaterRequirement;
325    use super::sql_types::TaxonomicRank;
326
327    plants (id) {
328        id -> Int8,
329        unique_name -> Text,
330        common_name_en -> Nullable<Array<Nullable<Text>>>,
331        common_name_de -> Nullable<Array<Nullable<Text>>>,
332        functions -> Nullable<Text>,
333        shade -> Nullable<Shade>,
334        soil_texture -> Nullable<Array<Nullable<SoilTexture>>>,
335        herbaceous_or_woody -> Nullable<HerbaceousOrWoody>,
336        life_cycle -> Nullable<Array<Nullable<LifeCycle>>>,
337        height -> Nullable<Int4>,
338        created_at -> Timestamp,
339        updated_at -> Timestamp,
340        has_drought_tolerance -> Nullable<Bool>,
341        hardiness_zone -> Nullable<Text>,
342        light_requirement -> Nullable<Array<Nullable<LightRequirement>>>,
343        water_requirement -> Nullable<Array<Nullable<WaterRequirement>>>,
344        edible -> Nullable<Bool>,
345        edible_parts -> Nullable<Array<Nullable<Text>>>,
346        spread -> Nullable<Int4>,
347        warning -> Nullable<Text>,
348        version -> Nullable<Int2>,
349        sowing_outdoors -> Nullable<Array<Nullable<Int2>>>,
350        harvest_time -> Nullable<Array<Nullable<Int2>>>,
351        rank -> TaxonomicRank,
352        family -> Nullable<Int8>,
353        genus -> Nullable<Int8>,
354        species -> Nullable<Int8>,
355        variety -> Nullable<Int8>,
356        icon_path -> Nullable<Text>,
357    }
358}
359
360diesel::table! {
361    use postgis_diesel::sql_types::Geography;
362    use diesel::sql_types::*;
363    use super::sql_types::FillPatternType;
364
365    rectangle_props (drawings_id) {
366        drawings_id -> Uuid,
367        width -> Int4,
368        height -> Int4,
369        color -> Text,
370        fill_pattern -> FillPatternType,
371        stroke_width -> Int4,
372    }
373}
374
375diesel::table! {
376    use postgis_diesel::sql_types::Geography;
377    use diesel::sql_types::*;
378    use super::sql_types::Quantity;
379    use super::sql_types::Quality;
380
381    seeds (id) {
382        id -> Int8,
383        name -> Text,
384        harvest_year -> Int2,
385        use_by -> Nullable<Date>,
386        origin -> Nullable<Text>,
387        taste -> Nullable<Text>,
388        #[sql_name = "yield"]
389        yield_ -> Nullable<Text>,
390        quantity -> Quantity,
391        quality -> Nullable<Quality>,
392        price -> Nullable<Int2>,
393        generation -> Nullable<Int2>,
394        notes -> Nullable<Text>,
395        plant_id -> Nullable<Int8>,
396        created_by -> Uuid,
397        archived_at -> Nullable<Timestamp>,
398    }
399}
400
401diesel::table! {
402    use postgis_diesel::sql_types::Geography;
403    use postgis_diesel::sql_types::Geometry;
404    use diesel::sql_types::*;
405    use super::sql_types::Shade;
406
407    shadings (id) {
408        id -> Uuid,
409        layer_id -> Uuid,
410        shade -> Shade,
411        geometry -> Geometry,
412        add_date -> Nullable<Date>,
413        remove_date -> Nullable<Date>,
414        notes -> Text,
415        created_at -> Timestamp,
416        modified_at -> Timestamp,
417        created_by -> Uuid,
418        modified_by -> Uuid,
419    }
420}
421
422diesel::table! {
423    use postgis_diesel::sql_types::Geography;
424    use postgis_diesel::sql_types::Geometry;
425    use diesel::sql_types::*;
426    use super::sql_types::SoilTexture;
427
428    soil_textures (id) {
429        id -> Uuid,
430        layer_id -> Uuid,
431        soil_texture -> SoilTexture,
432        geometry -> Geometry,
433        add_date -> Nullable<Date>,
434        remove_date -> Nullable<Date>,
435        notes -> Text,
436        created_at -> Timestamp,
437        modified_at -> Timestamp,
438        created_by -> Uuid,
439        modified_by -> Uuid,
440    }
441}
442
443diesel::table! {
444    use postgis_diesel::sql_types::Geography;
445    use diesel::sql_types::*;
446    use super::sql_types::SpatialRelationType;
447
448    spatial_relations (plant1, plant2) {
449        plant1 -> Int8,
450        plant2 -> Int8,
451        relation -> SpatialRelationType,
452        note -> Nullable<Text>,
453    }
454}
455
456diesel::table! {
457    use postgis_diesel::sql_types::Geography;
458    use diesel::sql_types::*;
459    use super::sql_types::TemporalRelationEffect;
460
461    temporal_relations (plant_earlier, plant_later) {
462        plant_earlier -> Int8,
463        plant_later -> Int8,
464        min_duration -> Nullable<Int4>,
465        max_duration -> Nullable<Int4>,
466        effect -> Nullable<TemporalRelationEffect>,
467    }
468}
469
470diesel::joinable!(base_layer_images -> layers (layer_id));
471diesel::joinable!(bezier_polygon_points -> bezier_polygon_props (id));
472diesel::joinable!(bezier_polygon_props -> drawings (drawings_id));
473diesel::joinable!(drawings -> layers (layer_id));
474diesel::joinable!(ellipse_props -> drawings (drawings_id));
475diesel::joinable!(free_line_points -> free_line_props (id));
476diesel::joinable!(free_line_props -> drawings (drawings_id));
477diesel::joinable!(hydrologies -> layers (layer_id));
478diesel::joinable!(image_props -> drawings (drawings_id));
479diesel::joinable!(label_text_props -> drawings (drawings_id));
480diesel::joinable!(layers -> maps (map_id));
481diesel::joinable!(map_collaborators -> maps (map_id));
482diesel::joinable!(plantings -> layers (layer_id));
483diesel::joinable!(plantings -> plants (plant_id));
484diesel::joinable!(plantings -> seeds (seed_id));
485diesel::joinable!(rectangle_props -> drawings (drawings_id));
486diesel::joinable!(seeds -> plants (plant_id));
487diesel::joinable!(shadings -> layers (layer_id));
488diesel::joinable!(soil_textures -> layers (layer_id));
489
490diesel::allow_tables_to_appear_in_same_query!(
491    application_settings,
492    base_layer_images,
493    bezier_polygon_points,
494    bezier_polygon_props,
495    drawings,
496    ellipse_props,
497    free_line_points,
498    free_line_props,
499    guided_tours,
500    hydrologies,
501    image_props,
502    label_text_props,
503    layers,
504    map_collaborators,
505    maps,
506    plantings,
507    plants,
508    rectangle_props,
509    seeds,
510    shadings,
511    soil_textures,
512    spatial_relations,
513    temporal_relations,
514);