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 = "experience"))]
14    pub struct Experience;
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 = "membership"))]
34    pub struct Membership;
35
36    #[derive(diesel::sql_types::SqlType)]
37    #[diesel(postgres_type(name = "privacy_option"))]
38    pub struct PrivacyOption;
39
40    #[derive(diesel::sql_types::SqlType)]
41    #[diesel(postgres_type(name = "quality"))]
42    pub struct Quality;
43
44    #[derive(diesel::sql_types::SqlType)]
45    #[diesel(postgres_type(name = "quantity"))]
46    pub struct Quantity;
47
48    #[derive(diesel::sql_types::SqlType)]
49    #[diesel(postgres_type(name = "salutation"))]
50    pub struct Salutation;
51
52    #[derive(diesel::sql_types::SqlType)]
53    #[diesel(postgres_type(name = "shade"))]
54    pub struct Shade;
55
56    #[derive(diesel::sql_types::SqlType)]
57    #[diesel(postgres_type(name = "soil_texture"))]
58    pub struct SoilTexture;
59
60    #[derive(diesel::sql_types::SqlType)]
61    #[diesel(postgres_type(name = "spatial_relation_type"))]
62    pub struct SpatialRelationType;
63
64    #[derive(diesel::sql_types::SqlType)]
65    #[diesel(postgres_type(name = "taxonomic_rank"))]
66    pub struct TaxonomicRank;
67
68    #[derive(diesel::sql_types::SqlType)]
69    #[diesel(postgres_type(name = "temporal_relation_effect"))]
70    pub struct TemporalRelationEffect;
71
72    #[derive(diesel::sql_types::SqlType)]
73    #[diesel(postgres_type(name = "track"))]
74    pub struct Track;
75
76    #[derive(diesel::sql_types::SqlType)]
77    #[diesel(postgres_type(name = "water_requirement"))]
78    pub struct WaterRequirement;
79}
80
81diesel::table! {
82    use postgis_diesel::sql_types::Geography;
83    use diesel::sql_types::*;
84
85    application_settings (id) {
86        id -> Int4,
87        key -> Text,
88        value -> Text,
89    }
90}
91
92diesel::table! {
93    use postgis_diesel::sql_types::Geography;
94    use diesel::sql_types::*;
95
96    base_layer_images (id) {
97        id -> Uuid,
98        path -> Text,
99        rotation -> Float4,
100        scale -> Float4,
101        layer_id -> Uuid,
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::Track;
111
112    blossoms (title) {
113        title -> Text,
114        description -> Nullable<Text>,
115        track -> Nullable<Track>,
116        icon -> Nullable<Text>,
117        is_seasonal -> Bool,
118    }
119}
120
121diesel::table! {
122    use postgis_diesel::sql_types::Geography;
123    use diesel::sql_types::*;
124    use super::sql_types::DrawingShapeType;
125
126    drawings (id) {
127        id -> Uuid,
128        shape_type -> DrawingShapeType,
129        add_date -> Nullable<Date>,
130        remove_date -> Nullable<Date>,
131        rotation -> Float4,
132        scale_x -> Float4,
133        scale_y -> Float4,
134        x -> Int4,
135        y -> Int4,
136        properties -> Jsonb,
137        layer_id -> Uuid,
138        notes -> Text,
139    }
140}
141
142diesel::table! {
143    use postgis_diesel::sql_types::Geography;
144    use diesel::sql_types::*;
145
146    gained_blossoms (user_id, blossom) {
147        user_id -> Uuid,
148        blossom -> Text,
149        times_gained -> Int4,
150        gained_date -> Date,
151    }
152}
153
154diesel::table! {
155    use postgis_diesel::sql_types::Geography;
156    use diesel::sql_types::*;
157
158    guided_tours (user_id) {
159        user_id -> Uuid,
160        editor_tour_completed -> Bool,
161    }
162}
163
164diesel::table! {
165    use postgis_diesel::sql_types::Geography;
166    use postgis_diesel::sql_types::Geometry;
167    use diesel::sql_types::*;
168    use super::sql_types::WaterRequirement;
169
170    hydrologies (id) {
171        id -> Uuid,
172        layer_id -> Uuid,
173        water_requirement -> WaterRequirement,
174        geometry -> Geometry,
175        add_date -> Nullable<Date>,
176        remove_date -> Nullable<Date>,
177        notes -> Text,
178    }
179}
180
181diesel::table! {
182    use postgis_diesel::sql_types::Geography;
183    use diesel::sql_types::*;
184    use super::sql_types::LayerType;
185
186    layers (id) {
187        map_id -> Int4,
188        #[sql_name = "type"]
189        type_ -> LayerType,
190        name -> Text,
191        is_alternative -> Bool,
192        id -> Uuid,
193        marked_deleted -> Nullable<Timestamp>,
194        order_index -> Int4,
195    }
196}
197
198diesel::table! {
199    use postgis_diesel::sql_types::Geography;
200    use diesel::sql_types::*;
201
202    map_collaborators (map_id, user_id) {
203        map_id -> Int4,
204        user_id -> Uuid,
205        created_at -> Timestamp,
206    }
207}
208
209diesel::table! {
210    use postgis_diesel::sql_types::Geography;
211    use postgis_diesel::sql_types::Geometry;
212    use diesel::sql_types::*;
213    use super::sql_types::PrivacyOption;
214
215    maps (id) {
216        id -> Int4,
217        name -> Text,
218        deletion_date -> Nullable<Date>,
219        last_visit -> Nullable<Date>,
220        is_inactive -> Bool,
221        zoom_factor -> Int2,
222        honors -> Int2,
223        visits -> Int2,
224        harvested -> Int2,
225        privacy -> PrivacyOption,
226        description -> Nullable<Text>,
227        location -> Nullable<Geography>,
228        created_by -> Uuid,
229        geometry -> Geometry,
230        created_at -> Timestamp,
231        modified_at -> Timestamp,
232        modified_by -> Uuid,
233    }
234}
235
236diesel::table! {
237    use postgis_diesel::sql_types::Geography;
238    use diesel::sql_types::*;
239
240    plantings (id) {
241        id -> Uuid,
242        plant_id -> Int4,
243        x -> Int4,
244        y -> Int4,
245        size_x -> Int4,
246        size_y -> Int4,
247        rotation -> Float4,
248        add_date -> Nullable<Date>,
249        remove_date -> Nullable<Date>,
250        seed_id -> Nullable<Int4>,
251        is_area -> Bool,
252        notes -> Text,
253        created_at -> Timestamp,
254        modified_at -> Timestamp,
255        created_by -> Uuid,
256        modified_by -> Uuid,
257        layer_id -> Uuid,
258        height -> Nullable<Int4>,
259    }
260}
261
262diesel::table! {
263    use postgis_diesel::sql_types::Geography;
264    use diesel::sql_types::*;
265    use super::sql_types::Shade;
266    use super::sql_types::SoilTexture;
267    use super::sql_types::HerbaceousOrWoody;
268    use super::sql_types::LifeCycle;
269    use super::sql_types::LightRequirement;
270    use super::sql_types::WaterRequirement;
271    use super::sql_types::TaxonomicRank;
272
273    plants (id) {
274        id -> Int4,
275        unique_name -> Text,
276        common_name_en -> Nullable<Array<Nullable<Text>>>,
277        common_name_de -> Nullable<Array<Nullable<Text>>>,
278        functions -> Nullable<Text>,
279        shade -> Nullable<Shade>,
280        soil_texture -> Nullable<Array<Nullable<SoilTexture>>>,
281        herbaceous_or_woody -> Nullable<HerbaceousOrWoody>,
282        life_cycle -> Nullable<Array<Nullable<LifeCycle>>>,
283        height -> Nullable<Int4>,
284        created_at -> Timestamp,
285        updated_at -> Timestamp,
286        has_drought_tolerance -> Nullable<Bool>,
287        hardiness_zone -> Nullable<Text>,
288        light_requirement -> Nullable<Array<Nullable<LightRequirement>>>,
289        water_requirement -> Nullable<Array<Nullable<WaterRequirement>>>,
290        edible -> Nullable<Bool>,
291        edible_parts -> Nullable<Array<Nullable<Text>>>,
292        spread -> Nullable<Int4>,
293        warning -> Nullable<Text>,
294        version -> Nullable<Int2>,
295        sowing_outdoors -> Nullable<Array<Nullable<Int2>>>,
296        harvest_time -> Nullable<Array<Nullable<Int2>>>,
297        rank -> Nullable<TaxonomicRank>,
298        family -> Nullable<Int4>,
299        genus -> Nullable<Int4>,
300        species -> Nullable<Int4>,
301        variety -> Nullable<Int4>,
302    }
303}
304
305diesel::table! {
306    use postgis_diesel::sql_types::Geography;
307    use diesel::sql_types::*;
308    use super::sql_types::Quantity;
309    use super::sql_types::Quality;
310
311    seeds (id) {
312        id -> Int4,
313        name -> Text,
314        harvest_year -> Int2,
315        use_by -> Nullable<Date>,
316        origin -> Nullable<Text>,
317        taste -> Nullable<Text>,
318        #[sql_name = "yield"]
319        yield_ -> Nullable<Text>,
320        quantity -> Quantity,
321        quality -> Nullable<Quality>,
322        price -> Nullable<Int2>,
323        generation -> Nullable<Int2>,
324        notes -> Nullable<Text>,
325        plant_id -> Nullable<Int4>,
326        created_by -> Uuid,
327        archived_at -> Nullable<Timestamp>,
328    }
329}
330
331diesel::table! {
332    use postgis_diesel::sql_types::Geography;
333    use postgis_diesel::sql_types::Geometry;
334    use diesel::sql_types::*;
335    use super::sql_types::Shade;
336
337    shadings (id) {
338        id -> Uuid,
339        layer_id -> Uuid,
340        shade -> Shade,
341        geometry -> Geometry,
342        add_date -> Nullable<Date>,
343        remove_date -> Nullable<Date>,
344        notes -> Text,
345    }
346}
347
348diesel::table! {
349    use postgis_diesel::sql_types::Geography;
350    use postgis_diesel::sql_types::Geometry;
351    use diesel::sql_types::*;
352    use super::sql_types::SoilTexture;
353
354    soil_textures (id) {
355        id -> Uuid,
356        layer_id -> Uuid,
357        soil_texture -> SoilTexture,
358        geometry -> Geometry,
359        add_date -> Nullable<Date>,
360        remove_date -> Nullable<Date>,
361        notes -> Text,
362    }
363}
364
365diesel::table! {
366    use postgis_diesel::sql_types::Geography;
367    use diesel::sql_types::*;
368    use super::sql_types::SpatialRelationType;
369
370    spatial_relations (plant1, plant2) {
371        plant1 -> Int4,
372        plant2 -> Int4,
373        relation -> SpatialRelationType,
374        note -> Nullable<Text>,
375    }
376}
377
378diesel::table! {
379    use postgis_diesel::sql_types::Geography;
380    use diesel::sql_types::*;
381    use super::sql_types::TemporalRelationEffect;
382
383    temporal_relation (plant_earlier, plant_later) {
384        plant_earlier -> Int4,
385        plant_later -> Int4,
386        min_duration -> Nullable<Int4>,
387        max_duration -> Nullable<Int4>,
388        effect -> Nullable<TemporalRelationEffect>,
389    }
390}
391
392diesel::table! {
393    use postgis_diesel::sql_types::Geography;
394    use diesel::sql_types::*;
395    use super::sql_types::Salutation;
396    use super::sql_types::Experience;
397    use super::sql_types::Membership;
398
399    users (id) {
400        id -> Uuid,
401        salutation -> Salutation,
402        title -> Nullable<Text>,
403        country -> Text,
404        phone -> Nullable<Text>,
405        website -> Nullable<Text>,
406        organization -> Nullable<Text>,
407        experience -> Nullable<Experience>,
408        membership -> Nullable<Membership>,
409        member_years -> Nullable<Array<Nullable<Int4>>>,
410        member_since -> Nullable<Date>,
411        permacoins -> Nullable<Array<Nullable<Int4>>>,
412    }
413}
414
415diesel::joinable!(base_layer_images -> layers (layer_id));
416diesel::joinable!(drawings -> layers (layer_id));
417diesel::joinable!(hydrologies -> layers (layer_id));
418diesel::joinable!(layers -> maps (map_id));
419diesel::joinable!(map_collaborators -> maps (map_id));
420diesel::joinable!(plantings -> layers (layer_id));
421diesel::joinable!(plantings -> plants (plant_id));
422diesel::joinable!(plantings -> seeds (seed_id));
423diesel::joinable!(seeds -> plants (plant_id));
424diesel::joinable!(shadings -> layers (layer_id));
425diesel::joinable!(soil_textures -> layers (layer_id));
426
427diesel::allow_tables_to_appear_in_same_query!(
428    application_settings,
429    base_layer_images,
430    blossoms,
431    drawings,
432    gained_blossoms,
433    guided_tours,
434    hydrologies,
435    layers,
436    map_collaborators,
437    maps,
438    plantings,
439    plants,
440    seeds,
441    shadings,
442    soil_textures,
443    spatial_relations,
444    temporal_relation,
445    users,
446);