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_tour_progress (user_id, step_key) {
189        user_id -> Uuid,
190        step_key -> Text,
191        completed_at -> Timestamp,
192    }
193}
194
195diesel::table! {
196    use postgis_diesel::sql_types::Geography;
197    use diesel::sql_types::*;
198
199    guided_tour_states (user_id) {
200        user_id -> Uuid,
201        paused_at -> Nullable<Timestamp>,
202        pause_count -> Int4,
203    }
204}
205
206diesel::table! {
207    use postgis_diesel::sql_types::Geography;
208    use postgis_diesel::sql_types::Geometry;
209    use diesel::sql_types::*;
210    use super::sql_types::WaterRequirement;
211
212    hydrologies (id) {
213        id -> Uuid,
214        layer_id -> Uuid,
215        water_requirement -> WaterRequirement,
216        geometry -> Geometry,
217        add_date -> Nullable<Date>,
218        remove_date -> Nullable<Date>,
219        notes -> Text,
220        created_at -> Timestamp,
221        modified_at -> Timestamp,
222        created_by -> Uuid,
223        modified_by -> Uuid,
224    }
225}
226
227diesel::table! {
228    use postgis_diesel::sql_types::Geography;
229    use diesel::sql_types::*;
230
231    image_props (drawings_id) {
232        drawings_id -> Uuid,
233        file_path -> Text,
234    }
235}
236
237diesel::table! {
238    use postgis_diesel::sql_types::Geography;
239    use diesel::sql_types::*;
240
241    label_text_props (drawings_id) {
242        drawings_id -> Uuid,
243        label_text -> Text,
244        width -> Int4,
245        height -> Int4,
246        color -> Text,
247    }
248}
249
250diesel::table! {
251    use postgis_diesel::sql_types::Geography;
252    use diesel::sql_types::*;
253    use super::sql_types::LayerType;
254
255    layers (id) {
256        map_id -> Int8,
257        #[sql_name = "type"]
258        type_ -> LayerType,
259        name -> Text,
260        id -> Uuid,
261        marked_deleted -> Nullable<Timestamp>,
262        order_index -> Int4,
263    }
264}
265
266diesel::table! {
267    use postgis_diesel::sql_types::Geography;
268    use diesel::sql_types::*;
269
270    map_collaborators (map_id, user_id) {
271        map_id -> Int8,
272        user_id -> Uuid,
273        created_at -> Timestamp,
274    }
275}
276
277diesel::table! {
278    use postgis_diesel::sql_types::Geography;
279    use postgis_diesel::sql_types::Geometry;
280    use diesel::sql_types::*;
281    use super::sql_types::PrivacyAccessControl;
282
283    maps (id) {
284        id -> Int8,
285        name -> Text,
286        deletion_date -> Nullable<Date>,
287        last_visit -> Nullable<Date>,
288        is_inactive -> Bool,
289        zoom_factor -> Int2,
290        privacy -> PrivacyAccessControl,
291        description -> Nullable<Text>,
292        location -> Nullable<Geography>,
293        created_by -> Uuid,
294        geometry -> Geometry,
295        created_at -> Timestamp,
296        modified_at -> Timestamp,
297        modified_by -> Uuid,
298    }
299}
300
301diesel::table! {
302    use postgis_diesel::sql_types::Geography;
303    use diesel::sql_types::*;
304
305    plantings (id) {
306        id -> Uuid,
307        plant_id -> Int8,
308        x -> Int4,
309        y -> Int4,
310        size_x -> Int4,
311        size_y -> Int4,
312        rotation -> Int4,
313        add_date -> Nullable<Date>,
314        remove_date -> Nullable<Date>,
315        seed_id -> Nullable<Int8>,
316        is_area -> Bool,
317        notes -> Text,
318        created_at -> Timestamp,
319        modified_at -> Timestamp,
320        created_by -> Uuid,
321        modified_by -> Uuid,
322        layer_id -> Uuid,
323        height -> Nullable<Int4>,
324    }
325}
326
327diesel::table! {
328    use postgis_diesel::sql_types::Geography;
329    use diesel::sql_types::*;
330    use super::sql_types::Shade;
331    use super::sql_types::SoilTexture;
332    use super::sql_types::HerbaceousOrWoody;
333    use super::sql_types::LifeCycle;
334    use super::sql_types::LightRequirement;
335    use super::sql_types::WaterRequirement;
336    use super::sql_types::TaxonomicRank;
337
338    plants (id) {
339        id -> Int8,
340        unique_name -> Text,
341        common_name_en -> Nullable<Array<Nullable<Text>>>,
342        common_name_de -> Nullable<Array<Nullable<Text>>>,
343        functions -> Nullable<Text>,
344        shade -> Nullable<Shade>,
345        soil_texture -> Nullable<Array<Nullable<SoilTexture>>>,
346        herbaceous_or_woody -> Nullable<HerbaceousOrWoody>,
347        life_cycle -> Nullable<Array<Nullable<LifeCycle>>>,
348        height -> Nullable<Int4>,
349        created_at -> Timestamp,
350        updated_at -> Timestamp,
351        has_drought_tolerance -> Nullable<Bool>,
352        hardiness_zone -> Nullable<Text>,
353        light_requirement -> Nullable<Array<Nullable<LightRequirement>>>,
354        water_requirement -> Nullable<Array<Nullable<WaterRequirement>>>,
355        edible -> Nullable<Bool>,
356        edible_parts -> Nullable<Array<Nullable<Text>>>,
357        spread -> Nullable<Int4>,
358        warning -> Nullable<Text>,
359        version -> Nullable<Int2>,
360        sowing_outdoors -> Nullable<Array<Nullable<Int2>>>,
361        harvest_time -> Nullable<Array<Nullable<Int2>>>,
362        rank -> TaxonomicRank,
363        family -> Nullable<Int8>,
364        genus -> Nullable<Int8>,
365        species -> Nullable<Int8>,
366        variety -> Nullable<Int8>,
367        icon_path -> Nullable<Text>,
368    }
369}
370
371diesel::table! {
372    use postgis_diesel::sql_types::Geography;
373    use diesel::sql_types::*;
374    use super::sql_types::FillPatternType;
375
376    rectangle_props (drawings_id) {
377        drawings_id -> Uuid,
378        width -> Int4,
379        height -> Int4,
380        color -> Text,
381        fill_pattern -> FillPatternType,
382        stroke_width -> Int4,
383    }
384}
385
386diesel::table! {
387    use postgis_diesel::sql_types::Geography;
388    use diesel::sql_types::*;
389    use super::sql_types::Quantity;
390    use super::sql_types::Quality;
391
392    seeds (id) {
393        id -> Int8,
394        name -> Text,
395        harvest_year -> Int2,
396        use_by -> Nullable<Date>,
397        origin -> Nullable<Text>,
398        taste -> Nullable<Text>,
399        #[sql_name = "yield"]
400        yield_ -> Nullable<Text>,
401        quantity -> Quantity,
402        quality -> Nullable<Quality>,
403        price -> Nullable<Int2>,
404        generation -> Nullable<Int2>,
405        notes -> Nullable<Text>,
406        plant_id -> Nullable<Int8>,
407        created_by -> Uuid,
408        archived_at -> Nullable<Timestamp>,
409    }
410}
411
412diesel::table! {
413    use postgis_diesel::sql_types::Geography;
414    use postgis_diesel::sql_types::Geometry;
415    use diesel::sql_types::*;
416    use super::sql_types::Shade;
417
418    shadings (id) {
419        id -> Uuid,
420        layer_id -> Uuid,
421        shade -> Shade,
422        geometry -> Geometry,
423        add_date -> Nullable<Date>,
424        remove_date -> Nullable<Date>,
425        notes -> Text,
426        created_at -> Timestamp,
427        modified_at -> Timestamp,
428        created_by -> Uuid,
429        modified_by -> Uuid,
430    }
431}
432
433diesel::table! {
434    use postgis_diesel::sql_types::Geography;
435    use postgis_diesel::sql_types::Geometry;
436    use diesel::sql_types::*;
437    use super::sql_types::SoilTexture;
438
439    soil_textures (id) {
440        id -> Uuid,
441        layer_id -> Uuid,
442        soil_texture -> SoilTexture,
443        geometry -> Geometry,
444        add_date -> Nullable<Date>,
445        remove_date -> Nullable<Date>,
446        notes -> Text,
447        created_at -> Timestamp,
448        modified_at -> Timestamp,
449        created_by -> Uuid,
450        modified_by -> Uuid,
451    }
452}
453
454diesel::table! {
455    use postgis_diesel::sql_types::Geography;
456    use diesel::sql_types::*;
457    use super::sql_types::SpatialRelationType;
458
459    spatial_relations (plant1, plant2) {
460        plant1 -> Int8,
461        plant2 -> Int8,
462        relation -> SpatialRelationType,
463        note -> Nullable<Text>,
464    }
465}
466
467diesel::table! {
468    use postgis_diesel::sql_types::Geography;
469    use diesel::sql_types::*;
470    use super::sql_types::TemporalRelationEffect;
471
472    temporal_relations (plant_earlier, plant_later) {
473        plant_earlier -> Int8,
474        plant_later -> Int8,
475        min_duration -> Nullable<Int4>,
476        max_duration -> Nullable<Int4>,
477        effect -> Nullable<TemporalRelationEffect>,
478    }
479}
480
481diesel::joinable!(base_layer_images -> layers (layer_id));
482diesel::joinable!(bezier_polygon_points -> bezier_polygon_props (id));
483diesel::joinable!(bezier_polygon_props -> drawings (drawings_id));
484diesel::joinable!(drawings -> layers (layer_id));
485diesel::joinable!(ellipse_props -> drawings (drawings_id));
486diesel::joinable!(free_line_points -> free_line_props (id));
487diesel::joinable!(free_line_props -> drawings (drawings_id));
488diesel::joinable!(hydrologies -> layers (layer_id));
489diesel::joinable!(image_props -> drawings (drawings_id));
490diesel::joinable!(label_text_props -> drawings (drawings_id));
491diesel::joinable!(layers -> maps (map_id));
492diesel::joinable!(map_collaborators -> maps (map_id));
493diesel::joinable!(plantings -> layers (layer_id));
494diesel::joinable!(plantings -> plants (plant_id));
495diesel::joinable!(plantings -> seeds (seed_id));
496diesel::joinable!(rectangle_props -> drawings (drawings_id));
497diesel::joinable!(seeds -> plants (plant_id));
498diesel::joinable!(shadings -> layers (layer_id));
499diesel::joinable!(soil_textures -> layers (layer_id));
500
501diesel::allow_tables_to_appear_in_same_query!(
502    application_settings,
503    base_layer_images,
504    bezier_polygon_points,
505    bezier_polygon_props,
506    drawings,
507    ellipse_props,
508    free_line_points,
509    free_line_props,
510    guided_tour_progress,
511    guided_tour_states,
512    hydrologies,
513    image_props,
514    label_text_props,
515    layers,
516    map_collaborators,
517    maps,
518    plantings,
519    plants,
520    rectangle_props,
521    seeds,
522    shadings,
523    soil_textures,
524    spatial_relations,
525    temporal_relations,
526);