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        icon_path -> Nullable<Text>,
303    }
304}
305
306diesel::table! {
307    use postgis_diesel::sql_types::Geography;
308    use diesel::sql_types::*;
309    use super::sql_types::Quantity;
310    use super::sql_types::Quality;
311
312    seeds (id) {
313        id -> Int4,
314        name -> Text,
315        harvest_year -> Int2,
316        use_by -> Nullable<Date>,
317        origin -> Nullable<Text>,
318        taste -> Nullable<Text>,
319        #[sql_name = "yield"]
320        yield_ -> Nullable<Text>,
321        quantity -> Quantity,
322        quality -> Nullable<Quality>,
323        price -> Nullable<Int2>,
324        generation -> Nullable<Int2>,
325        notes -> Nullable<Text>,
326        plant_id -> Nullable<Int4>,
327        created_by -> Uuid,
328        archived_at -> Nullable<Timestamp>,
329    }
330}
331
332diesel::table! {
333    use postgis_diesel::sql_types::Geography;
334    use postgis_diesel::sql_types::Geometry;
335    use diesel::sql_types::*;
336    use super::sql_types::Shade;
337
338    shadings (id) {
339        id -> Uuid,
340        layer_id -> Uuid,
341        shade -> Shade,
342        geometry -> Geometry,
343        add_date -> Nullable<Date>,
344        remove_date -> Nullable<Date>,
345        notes -> Text,
346    }
347}
348
349diesel::table! {
350    use postgis_diesel::sql_types::Geography;
351    use postgis_diesel::sql_types::Geometry;
352    use diesel::sql_types::*;
353    use super::sql_types::SoilTexture;
354
355    soil_textures (id) {
356        id -> Uuid,
357        layer_id -> Uuid,
358        soil_texture -> SoilTexture,
359        geometry -> Geometry,
360        add_date -> Nullable<Date>,
361        remove_date -> Nullable<Date>,
362        notes -> Text,
363    }
364}
365
366diesel::table! {
367    use postgis_diesel::sql_types::Geography;
368    use diesel::sql_types::*;
369    use super::sql_types::SpatialRelationType;
370
371    spatial_relations (plant1, plant2) {
372        plant1 -> Int4,
373        plant2 -> Int4,
374        relation -> SpatialRelationType,
375        note -> Nullable<Text>,
376    }
377}
378
379diesel::table! {
380    use postgis_diesel::sql_types::Geography;
381    use diesel::sql_types::*;
382    use super::sql_types::TemporalRelationEffect;
383
384    temporal_relation (plant_earlier, plant_later) {
385        plant_earlier -> Int4,
386        plant_later -> Int4,
387        min_duration -> Nullable<Int4>,
388        max_duration -> Nullable<Int4>,
389        effect -> Nullable<TemporalRelationEffect>,
390    }
391}
392
393diesel::table! {
394    use postgis_diesel::sql_types::Geography;
395    use diesel::sql_types::*;
396    use super::sql_types::Salutation;
397    use super::sql_types::Experience;
398    use super::sql_types::Membership;
399
400    users (id) {
401        id -> Uuid,
402        salutation -> Salutation,
403        title -> Nullable<Text>,
404        country -> Text,
405        phone -> Nullable<Text>,
406        website -> Nullable<Text>,
407        organization -> Nullable<Text>,
408        experience -> Nullable<Experience>,
409        membership -> Nullable<Membership>,
410        member_years -> Nullable<Array<Nullable<Int4>>>,
411        member_since -> Nullable<Date>,
412        permacoins -> Nullable<Array<Nullable<Int4>>>,
413    }
414}
415
416diesel::joinable!(base_layer_images -> layers (layer_id));
417diesel::joinable!(drawings -> layers (layer_id));
418diesel::joinable!(hydrologies -> layers (layer_id));
419diesel::joinable!(layers -> maps (map_id));
420diesel::joinable!(map_collaborators -> maps (map_id));
421diesel::joinable!(plantings -> layers (layer_id));
422diesel::joinable!(plantings -> plants (plant_id));
423diesel::joinable!(plantings -> seeds (seed_id));
424diesel::joinable!(seeds -> plants (plant_id));
425diesel::joinable!(shadings -> layers (layer_id));
426diesel::joinable!(soil_textures -> layers (layer_id));
427
428diesel::allow_tables_to_appear_in_same_query!(
429    application_settings,
430    base_layer_images,
431    blossoms,
432    drawings,
433    gained_blossoms,
434    guided_tours,
435    hydrologies,
436    layers,
437    map_collaborators,
438    maps,
439    plantings,
440    plants,
441    seeds,
442    shadings,
443    soil_textures,
444    spatial_relations,
445    temporal_relation,
446    users,
447);