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    #[derive(diesel::sql_types::SqlType)]
8
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        created_at -> Timestamp,
140        modified_at -> Timestamp,
141        created_by -> Uuid,
142        modified_by -> Uuid,
143    }
144}
145
146diesel::table! {
147    use postgis_diesel::sql_types::Geography;
148    use diesel::sql_types::*;
149
150    gained_blossoms (user_id, blossom) {
151        user_id -> Uuid,
152        blossom -> Text,
153        times_gained -> Int4,
154        gained_date -> Date,
155    }
156}
157
158diesel::table! {
159    use postgis_diesel::sql_types::Geography;
160    use diesel::sql_types::*;
161
162    guided_tours (user_id) {
163        user_id -> Uuid,
164        editor_tour_completed -> Bool,
165    }
166}
167
168diesel::table! {
169    use postgis_diesel::sql_types::Geography;
170    use postgis_diesel::sql_types::Geometry;
171    use diesel::sql_types::*;
172    use super::sql_types::WaterRequirement;
173
174    hydrologies (id) {
175        id -> Uuid,
176        layer_id -> Uuid,
177        water_requirement -> WaterRequirement,
178        geometry -> Geometry,
179        add_date -> Nullable<Date>,
180        remove_date -> Nullable<Date>,
181        notes -> Text,
182        created_at -> Timestamp,
183        modified_at -> Timestamp,
184        created_by -> Uuid,
185        modified_by -> Uuid,
186    }
187}
188
189diesel::table! {
190    use postgis_diesel::sql_types::Geography;
191    use diesel::sql_types::*;
192    use super::sql_types::LayerType;
193
194    layers (id) {
195        map_id -> Int4,
196        #[sql_name = "type"]
197        type_ -> LayerType,
198        name -> Text,
199        is_alternative -> Bool,
200        id -> Uuid,
201        marked_deleted -> Nullable<Timestamp>,
202        order_index -> Int4,
203    }
204}
205
206diesel::table! {
207    use postgis_diesel::sql_types::Geography;
208    use diesel::sql_types::*;
209
210    map_collaborators (map_id, user_id) {
211        map_id -> Int4,
212        user_id -> Uuid,
213        created_at -> Timestamp,
214    }
215}
216
217diesel::table! {
218    use postgis_diesel::sql_types::Geography;
219    use postgis_diesel::sql_types::Geometry;
220    use diesel::sql_types::*;
221    use super::sql_types::PrivacyOption;
222
223    maps (id) {
224        id -> Int4,
225        name -> Text,
226        deletion_date -> Nullable<Date>,
227        last_visit -> Nullable<Date>,
228        is_inactive -> Bool,
229        zoom_factor -> Int2,
230        honors -> Int2,
231        visits -> Int2,
232        harvested -> Int2,
233        privacy -> PrivacyOption,
234        description -> Nullable<Text>,
235        location -> Nullable<Geography>,
236        created_by -> Uuid,
237        geometry -> Geometry,
238        created_at -> Timestamp,
239        modified_at -> Timestamp,
240        modified_by -> Uuid,
241    }
242}
243
244diesel::table! {
245    use postgis_diesel::sql_types::Geography;
246    use diesel::sql_types::*;
247
248    plantings (id) {
249        id -> Uuid,
250        plant_id -> Int4,
251        x -> Int4,
252        y -> Int4,
253        size_x -> Int4,
254        size_y -> Int4,
255        rotation -> Float4,
256        add_date -> Nullable<Date>,
257        remove_date -> Nullable<Date>,
258        seed_id -> Nullable<Int4>,
259        is_area -> Bool,
260        notes -> Text,
261        created_at -> Timestamp,
262        modified_at -> Timestamp,
263        created_by -> Uuid,
264        modified_by -> Uuid,
265        layer_id -> Uuid,
266        height -> Nullable<Int4>,
267    }
268}
269
270diesel::table! {
271    use postgis_diesel::sql_types::Geography;
272    use diesel::sql_types::*;
273    use super::sql_types::Shade;
274    use super::sql_types::SoilTexture;
275    use super::sql_types::HerbaceousOrWoody;
276    use super::sql_types::LifeCycle;
277    use super::sql_types::LightRequirement;
278    use super::sql_types::WaterRequirement;
279    use super::sql_types::TaxonomicRank;
280
281    plants (id) {
282        id -> Int4,
283        unique_name -> Text,
284        common_name_en -> Nullable<Array<Nullable<Text>>>,
285        common_name_de -> Nullable<Array<Nullable<Text>>>,
286        functions -> Nullable<Text>,
287        shade -> Nullable<Shade>,
288        soil_texture -> Nullable<Array<Nullable<SoilTexture>>>,
289        herbaceous_or_woody -> Nullable<HerbaceousOrWoody>,
290        life_cycle -> Nullable<Array<Nullable<LifeCycle>>>,
291        height -> Nullable<Int4>,
292        created_at -> Timestamp,
293        updated_at -> Timestamp,
294        has_drought_tolerance -> Nullable<Bool>,
295        hardiness_zone -> Nullable<Text>,
296        light_requirement -> Nullable<Array<Nullable<LightRequirement>>>,
297        water_requirement -> Nullable<Array<Nullable<WaterRequirement>>>,
298        edible -> Nullable<Bool>,
299        edible_parts -> Nullable<Array<Nullable<Text>>>,
300        spread -> Nullable<Int4>,
301        warning -> Nullable<Text>,
302        version -> Nullable<Int2>,
303        sowing_outdoors -> Nullable<Array<Nullable<Int2>>>,
304        harvest_time -> Nullable<Array<Nullable<Int2>>>,
305        rank -> Nullable<TaxonomicRank>,
306        family -> Nullable<Int4>,
307        genus -> Nullable<Int4>,
308        species -> Nullable<Int4>,
309        variety -> Nullable<Int4>,
310        icon_path -> Nullable<Text>,
311    }
312}
313
314diesel::table! {
315    use postgis_diesel::sql_types::Geography;
316    use diesel::sql_types::*;
317    use super::sql_types::Quantity;
318    use super::sql_types::Quality;
319
320    seeds (id) {
321        id -> Int4,
322        name -> Text,
323        harvest_year -> Int2,
324        use_by -> Nullable<Date>,
325        origin -> Nullable<Text>,
326        taste -> Nullable<Text>,
327        #[sql_name = "yield"]
328        yield_ -> Nullable<Text>,
329        quantity -> Quantity,
330        quality -> Nullable<Quality>,
331        price -> Nullable<Int2>,
332        generation -> Nullable<Int2>,
333        notes -> Nullable<Text>,
334        plant_id -> Nullable<Int4>,
335        created_by -> Uuid,
336        archived_at -> Nullable<Timestamp>,
337    }
338}
339
340diesel::table! {
341    use postgis_diesel::sql_types::Geography;
342    use postgis_diesel::sql_types::Geometry;
343    use diesel::sql_types::*;
344    use super::sql_types::Shade;
345
346    shadings (id) {
347        id -> Uuid,
348        layer_id -> Uuid,
349        shade -> Shade,
350        geometry -> Geometry,
351        add_date -> Nullable<Date>,
352        remove_date -> Nullable<Date>,
353        notes -> Text,
354        created_at -> Timestamp,
355        modified_at -> Timestamp,
356        created_by -> Uuid,
357        modified_by -> Uuid,
358    }
359}
360
361diesel::table! {
362    use postgis_diesel::sql_types::Geography;
363    use postgis_diesel::sql_types::Geometry;
364    use diesel::sql_types::*;
365    use super::sql_types::SoilTexture;
366
367    soil_textures (id) {
368        id -> Uuid,
369        layer_id -> Uuid,
370        soil_texture -> SoilTexture,
371        geometry -> Geometry,
372        add_date -> Nullable<Date>,
373        remove_date -> Nullable<Date>,
374        notes -> Text,
375        created_at -> Timestamp,
376        modified_at -> Timestamp,
377        created_by -> Uuid,
378        modified_by -> Uuid,
379    }
380}
381
382diesel::table! {
383    use postgis_diesel::sql_types::Geography;
384    use diesel::sql_types::*;
385    use super::sql_types::SpatialRelationType;
386
387    spatial_relations (plant1, plant2) {
388        plant1 -> Int4,
389        plant2 -> Int4,
390        relation -> SpatialRelationType,
391        note -> Nullable<Text>,
392    }
393}
394
395diesel::table! {
396    use postgis_diesel::sql_types::Geography;
397    use diesel::sql_types::*;
398    use super::sql_types::TemporalRelationEffect;
399
400    temporal_relation (plant_earlier, plant_later) {
401        plant_earlier -> Int4,
402        plant_later -> Int4,
403        min_duration -> Nullable<Int4>,
404        max_duration -> Nullable<Int4>,
405        effect -> Nullable<TemporalRelationEffect>,
406    }
407}
408
409diesel::table! {
410    use postgis_diesel::sql_types::Geography;
411    use diesel::sql_types::*;
412    use super::sql_types::Salutation;
413    use super::sql_types::Experience;
414    use super::sql_types::Membership;
415
416    users (id) {
417        id -> Uuid,
418        salutation -> Salutation,
419        title -> Nullable<Text>,
420        country -> Text,
421        phone -> Nullable<Text>,
422        website -> Nullable<Text>,
423        organization -> Nullable<Text>,
424        experience -> Nullable<Experience>,
425        membership -> Nullable<Membership>,
426        member_years -> Nullable<Array<Nullable<Int4>>>,
427        member_since -> Nullable<Date>,
428        permacoins -> Nullable<Array<Nullable<Int4>>>,
429    }
430}
431
432diesel::joinable!(base_layer_images -> layers (layer_id));
433diesel::joinable!(drawings -> layers (layer_id));
434diesel::joinable!(hydrologies -> layers (layer_id));
435diesel::joinable!(layers -> maps (map_id));
436diesel::joinable!(map_collaborators -> maps (map_id));
437diesel::joinable!(plantings -> layers (layer_id));
438diesel::joinable!(plantings -> plants (plant_id));
439diesel::joinable!(plantings -> seeds (seed_id));
440diesel::joinable!(seeds -> plants (plant_id));
441diesel::joinable!(shadings -> layers (layer_id));
442diesel::joinable!(soil_textures -> layers (layer_id));
443
444diesel::allow_tables_to_appear_in_same_query!(
445    application_settings,
446    base_layer_images,
447    blossoms,
448    drawings,
449    gained_blossoms,
450    guided_tours,
451    hydrologies,
452    layers,
453    map_collaborators,
454    maps,
455    plantings,
456    plants,
457    seeds,
458    shadings,
459    soil_textures,
460    spatial_relations,
461    temporal_relation,
462    users,
463);