]> Untitled Git - lemmy.git/blob - crates/db_schema/src/schema.rs
Merge branch 'main' into split_user_table
[lemmy.git] / crates / db_schema / src / schema.rs
1 table! {
2     activity (id) {
3         id -> Int4,
4         data -> Jsonb,
5         local -> Bool,
6         published -> Timestamp,
7         updated -> Nullable<Timestamp>,
8         ap_id -> Nullable<Text>,
9         sensitive -> Nullable<Bool>,
10     }
11 }
12
13 table! {
14     comment (id) {
15         id -> Int4,
16         creator_id -> Int4,
17         post_id -> Int4,
18         parent_id -> Nullable<Int4>,
19         content -> Text,
20         removed -> Bool,
21         read -> Bool,
22         published -> Timestamp,
23         updated -> Nullable<Timestamp>,
24         deleted -> Bool,
25         ap_id -> Varchar,
26         local -> Bool,
27     }
28 }
29
30 table! {
31     comment_aggregates (id) {
32         id -> Int4,
33         comment_id -> Int4,
34         score -> Int8,
35         upvotes -> Int8,
36         downvotes -> Int8,
37         published -> Timestamp,
38     }
39 }
40
41 table! {
42     comment_like (id) {
43         id -> Int4,
44         person_id -> Int4,
45         comment_id -> Int4,
46         post_id -> Int4,
47         score -> Int2,
48         published -> Timestamp,
49     }
50 }
51
52 table! {
53     comment_report (id) {
54         id -> Int4,
55         creator_id -> Int4,
56         comment_id -> Int4,
57         original_comment_text -> Text,
58         reason -> Text,
59         resolved -> Bool,
60         resolver_id -> Nullable<Int4>,
61         published -> Timestamp,
62         updated -> Nullable<Timestamp>,
63     }
64 }
65
66 table! {
67     comment_saved (id) {
68         id -> Int4,
69         comment_id -> Int4,
70         person_id -> Int4,
71         published -> Timestamp,
72     }
73 }
74
75 table! {
76     community (id) {
77         id -> Int4,
78         name -> Varchar,
79         title -> Varchar,
80         description -> Nullable<Text>,
81         creator_id -> Int4,
82         removed -> Bool,
83         published -> Timestamp,
84         updated -> Nullable<Timestamp>,
85         deleted -> Bool,
86         nsfw -> Bool,
87         actor_id -> Varchar,
88         local -> Bool,
89         private_key -> Nullable<Text>,
90         public_key -> Nullable<Text>,
91         last_refreshed_at -> Timestamp,
92         icon -> Nullable<Varchar>,
93         banner -> Nullable<Varchar>,
94         followers_url -> Varchar,
95         inbox_url -> Varchar,
96         shared_inbox_url -> Nullable<Varchar>,
97     }
98 }
99
100 table! {
101     community_aggregates (id) {
102         id -> Int4,
103         community_id -> Int4,
104         subscribers -> Int8,
105         posts -> Int8,
106         comments -> Int8,
107         published -> Timestamp,
108         users_active_day -> Int8,
109         users_active_week -> Int8,
110         users_active_month -> Int8,
111         users_active_half_year -> Int8,
112     }
113 }
114
115 table! {
116     community_follower (id) {
117         id -> Int4,
118         community_id -> Int4,
119         person_id -> Int4,
120         published -> Timestamp,
121         pending -> Nullable<Bool>,
122     }
123 }
124
125 table! {
126     community_moderator (id) {
127         id -> Int4,
128         community_id -> Int4,
129         person_id -> Int4,
130         published -> Timestamp,
131     }
132 }
133
134 table! {
135     community_person_ban (id) {
136         id -> Int4,
137         community_id -> Int4,
138         person_id -> Int4,
139         published -> Timestamp,
140     }
141 }
142
143 table! {
144     local_user (id) {
145         id -> Int4,
146         person_id -> Int4,
147         password_encrypted -> Text,
148         email -> Nullable<Text>,
149         admin -> Bool,
150         show_nsfw -> Bool,
151         theme -> Varchar,
152         default_sort_type -> Int2,
153         default_listing_type -> Int2,
154         lang -> Varchar,
155         show_avatars -> Bool,
156         send_notifications_to_email -> Bool,
157         matrix_user_id -> Nullable<Text>,
158     }
159 }
160
161 table! {
162     mod_add (id) {
163         id -> Int4,
164         mod_person_id -> Int4,
165         other_person_id -> Int4,
166         removed -> Nullable<Bool>,
167         when_ -> Timestamp,
168     }
169 }
170
171 table! {
172     mod_add_community (id) {
173         id -> Int4,
174         mod_person_id -> Int4,
175         other_person_id -> Int4,
176         community_id -> Int4,
177         removed -> Nullable<Bool>,
178         when_ -> Timestamp,
179     }
180 }
181
182 table! {
183     mod_ban (id) {
184         id -> Int4,
185         mod_person_id -> Int4,
186         other_person_id -> Int4,
187         reason -> Nullable<Text>,
188         banned -> Nullable<Bool>,
189         expires -> Nullable<Timestamp>,
190         when_ -> Timestamp,
191     }
192 }
193
194 table! {
195     mod_ban_from_community (id) {
196         id -> Int4,
197         mod_person_id -> Int4,
198         other_person_id -> Int4,
199         community_id -> Int4,
200         reason -> Nullable<Text>,
201         banned -> Nullable<Bool>,
202         expires -> Nullable<Timestamp>,
203         when_ -> Timestamp,
204     }
205 }
206
207 table! {
208     mod_lock_post (id) {
209         id -> Int4,
210         mod_person_id -> Int4,
211         post_id -> Int4,
212         locked -> Nullable<Bool>,
213         when_ -> Timestamp,
214     }
215 }
216
217 table! {
218     mod_remove_comment (id) {
219         id -> Int4,
220         mod_person_id -> Int4,
221         comment_id -> Int4,
222         reason -> Nullable<Text>,
223         removed -> Nullable<Bool>,
224         when_ -> Timestamp,
225     }
226 }
227
228 table! {
229     mod_remove_community (id) {
230         id -> Int4,
231         mod_person_id -> Int4,
232         community_id -> Int4,
233         reason -> Nullable<Text>,
234         removed -> Nullable<Bool>,
235         expires -> Nullable<Timestamp>,
236         when_ -> Timestamp,
237     }
238 }
239
240 table! {
241     mod_remove_post (id) {
242         id -> Int4,
243         mod_person_id -> Int4,
244         post_id -> Int4,
245         reason -> Nullable<Text>,
246         removed -> Nullable<Bool>,
247         when_ -> Timestamp,
248     }
249 }
250
251 table! {
252     mod_sticky_post (id) {
253         id -> Int4,
254         mod_person_id -> Int4,
255         post_id -> Int4,
256         stickied -> Nullable<Bool>,
257         when_ -> Timestamp,
258     }
259 }
260
261 table! {
262     password_reset_request (id) {
263         id -> Int4,
264         token_encrypted -> Text,
265         published -> Timestamp,
266         local_user_id -> Int4,
267     }
268 }
269
270 table! {
271     person (id) {
272         id -> Int4,
273         name -> Varchar,
274         preferred_username -> Nullable<Varchar>,
275         avatar -> Nullable<Varchar>,
276         banned -> Bool,
277         published -> Timestamp,
278         updated -> Nullable<Timestamp>,
279         actor_id -> Varchar,
280         bio -> Nullable<Text>,
281         local -> Bool,
282         private_key -> Nullable<Text>,
283         public_key -> Nullable<Text>,
284         last_refreshed_at -> Timestamp,
285         banner -> Nullable<Varchar>,
286         deleted -> Bool,
287         inbox_url -> Varchar,
288         shared_inbox_url -> Nullable<Varchar>,
289     }
290 }
291
292 table! {
293     person_aggregates (id) {
294         id -> Int4,
295         person_id -> Int4,
296         post_count -> Int8,
297         post_score -> Int8,
298         comment_count -> Int8,
299         comment_score -> Int8,
300     }
301 }
302
303 table! {
304     person_ban (id) {
305         id -> Int4,
306         person_id -> Int4,
307         published -> Timestamp,
308     }
309 }
310
311 table! {
312     person_mention (id) {
313         id -> Int4,
314         recipient_id -> Int4,
315         comment_id -> Int4,
316         read -> Bool,
317         published -> Timestamp,
318     }
319 }
320
321 table! {
322     post (id) {
323         id -> Int4,
324         name -> Varchar,
325         url -> Nullable<Varchar>,
326         body -> Nullable<Text>,
327         creator_id -> Int4,
328         community_id -> Int4,
329         removed -> Bool,
330         locked -> Bool,
331         published -> Timestamp,
332         updated -> Nullable<Timestamp>,
333         deleted -> Bool,
334         nsfw -> Bool,
335         stickied -> Bool,
336         embed_title -> Nullable<Text>,
337         embed_description -> Nullable<Text>,
338         embed_html -> Nullable<Text>,
339         thumbnail_url -> Nullable<Text>,
340         ap_id -> Varchar,
341         local -> Bool,
342     }
343 }
344
345 table! {
346     post_aggregates (id) {
347         id -> Int4,
348         post_id -> Int4,
349         comments -> Int8,
350         score -> Int8,
351         upvotes -> Int8,
352         downvotes -> Int8,
353         stickied -> Bool,
354         published -> Timestamp,
355         newest_comment_time_necro -> Timestamp,
356         newest_comment_time -> Timestamp,
357     }
358 }
359
360 table! {
361     post_like (id) {
362         id -> Int4,
363         post_id -> Int4,
364         person_id -> Int4,
365         score -> Int2,
366         published -> Timestamp,
367     }
368 }
369
370 table! {
371     post_read (id) {
372         id -> Int4,
373         post_id -> Int4,
374         person_id -> Int4,
375         published -> Timestamp,
376     }
377 }
378
379 table! {
380     post_report (id) {
381         id -> Int4,
382         creator_id -> Int4,
383         post_id -> Int4,
384         original_post_name -> Varchar,
385         original_post_url -> Nullable<Text>,
386         original_post_body -> Nullable<Text>,
387         reason -> Text,
388         resolved -> Bool,
389         resolver_id -> Nullable<Int4>,
390         published -> Timestamp,
391         updated -> Nullable<Timestamp>,
392     }
393 }
394
395 table! {
396     post_saved (id) {
397         id -> Int4,
398         post_id -> Int4,
399         person_id -> Int4,
400         published -> Timestamp,
401     }
402 }
403
404 table! {
405     private_message (id) {
406         id -> Int4,
407         creator_id -> Int4,
408         recipient_id -> Int4,
409         content -> Text,
410         deleted -> Bool,
411         read -> Bool,
412         published -> Timestamp,
413         updated -> Nullable<Timestamp>,
414         ap_id -> Varchar,
415         local -> Bool,
416     }
417 }
418
419 table! {
420     site (id) {
421         id -> Int4,
422         name -> Varchar,
423         description -> Nullable<Text>,
424         creator_id -> Int4,
425         published -> Timestamp,
426         updated -> Nullable<Timestamp>,
427         enable_downvotes -> Bool,
428         open_registration -> Bool,
429         enable_nsfw -> Bool,
430         icon -> Nullable<Varchar>,
431         banner -> Nullable<Varchar>,
432     }
433 }
434
435 table! {
436     site_aggregates (id) {
437         id -> Int4,
438         site_id -> Int4,
439         users -> Int8,
440         posts -> Int8,
441         comments -> Int8,
442         communities -> Int8,
443         users_active_day -> Int8,
444         users_active_week -> Int8,
445         users_active_month -> Int8,
446         users_active_half_year -> Int8,
447     }
448 }
449
450 // These are necessary since diesel doesn't have self joins / aliases
451 table! {
452     comment_alias_1 (id) {
453         id -> Int4,
454         creator_id -> Int4,
455         post_id -> Int4,
456         parent_id -> Nullable<Int4>,
457         content -> Text,
458         removed -> Bool,
459         read -> Bool,
460         published -> Timestamp,
461         updated -> Nullable<Timestamp>,
462         deleted -> Bool,
463         ap_id -> Varchar,
464         local -> Bool,
465     }
466 }
467
468 table! {
469     person_alias_1 (id) {
470         id -> Int4,
471         name -> Varchar,
472         preferred_username -> Nullable<Varchar>,
473         avatar -> Nullable<Varchar>,
474         banned -> Bool,
475         published -> Timestamp,
476         updated -> Nullable<Timestamp>,
477         actor_id -> Varchar,
478         bio -> Nullable<Text>,
479         local -> Bool,
480         private_key -> Nullable<Text>,
481         public_key -> Nullable<Text>,
482         last_refreshed_at -> Timestamp,
483         banner -> Nullable<Varchar>,
484         deleted -> Bool,
485         inbox_url -> Varchar,
486         shared_inbox_url -> Nullable<Varchar>,
487     }
488 }
489
490 table! {
491     person_alias_2 (id) {
492         id -> Int4,
493         name -> Varchar,
494         preferred_username -> Nullable<Varchar>,
495         avatar -> Nullable<Varchar>,
496         banned -> Bool,
497         published -> Timestamp,
498         updated -> Nullable<Timestamp>,
499         actor_id -> Varchar,
500         bio -> Nullable<Text>,
501         local -> Bool,
502         private_key -> Nullable<Text>,
503         public_key -> Nullable<Text>,
504         last_refreshed_at -> Timestamp,
505         banner -> Nullable<Varchar>,
506         deleted -> Bool,
507         inbox_url -> Varchar,
508         shared_inbox_url -> Nullable<Varchar>,
509     }
510 }
511
512 joinable!(comment_alias_1 -> person_alias_1 (creator_id));
513 joinable!(comment -> comment_alias_1 (parent_id));
514 joinable!(person_mention -> person_alias_1 (recipient_id));
515 joinable!(post -> person_alias_1 (creator_id));
516 joinable!(comment -> person_alias_1 (creator_id));
517
518 joinable!(post_report -> person_alias_2 (resolver_id));
519 joinable!(comment_report -> person_alias_2 (resolver_id));
520
521 joinable!(comment -> person (creator_id));
522 joinable!(comment -> post (post_id));
523 joinable!(comment_aggregates -> comment (comment_id));
524 joinable!(comment_like -> comment (comment_id));
525 joinable!(comment_like -> person (person_id));
526 joinable!(comment_like -> post (post_id));
527 joinable!(comment_report -> comment (comment_id));
528 joinable!(comment_saved -> comment (comment_id));
529 joinable!(comment_saved -> person (person_id));
530 joinable!(community -> person (creator_id));
531 joinable!(community_aggregates -> community (community_id));
532 joinable!(community_follower -> community (community_id));
533 joinable!(community_follower -> person (person_id));
534 joinable!(community_moderator -> community (community_id));
535 joinable!(community_moderator -> person (person_id));
536 joinable!(community_person_ban -> community (community_id));
537 joinable!(community_person_ban -> person (person_id));
538 joinable!(local_user -> person (person_id));
539 joinable!(mod_add_community -> community (community_id));
540 joinable!(mod_ban_from_community -> community (community_id));
541 joinable!(mod_lock_post -> person (mod_person_id));
542 joinable!(mod_lock_post -> post (post_id));
543 joinable!(mod_remove_comment -> comment (comment_id));
544 joinable!(mod_remove_comment -> person (mod_person_id));
545 joinable!(mod_remove_community -> community (community_id));
546 joinable!(mod_remove_community -> person (mod_person_id));
547 joinable!(mod_remove_post -> person (mod_person_id));
548 joinable!(mod_remove_post -> post (post_id));
549 joinable!(mod_sticky_post -> person (mod_person_id));
550 joinable!(mod_sticky_post -> post (post_id));
551 joinable!(password_reset_request -> local_user (local_user_id));
552 joinable!(person_aggregates -> person (person_id));
553 joinable!(person_ban -> person (person_id));
554 joinable!(person_mention -> comment (comment_id));
555 joinable!(person_mention -> person (recipient_id));
556 joinable!(post -> community (community_id));
557 joinable!(post -> person (creator_id));
558 joinable!(post_aggregates -> post (post_id));
559 joinable!(post_like -> person (person_id));
560 joinable!(post_like -> post (post_id));
561 joinable!(post_read -> person (person_id));
562 joinable!(post_read -> post (post_id));
563 joinable!(post_report -> post (post_id));
564 joinable!(post_saved -> person (person_id));
565 joinable!(post_saved -> post (post_id));
566 joinable!(site -> person (creator_id));
567 joinable!(site_aggregates -> site (site_id));
568
569 allow_tables_to_appear_in_same_query!(
570   activity,
571   comment,
572   comment_aggregates,
573   comment_like,
574   comment_report,
575   comment_saved,
576   community,
577   community_aggregates,
578   community_follower,
579   community_moderator,
580   community_person_ban,
581   local_user,
582   mod_add,
583   mod_add_community,
584   mod_ban,
585   mod_ban_from_community,
586   mod_lock_post,
587   mod_remove_comment,
588   mod_remove_community,
589   mod_remove_post,
590   mod_sticky_post,
591   password_reset_request,
592   person,
593   person_aggregates,
594   person_ban,
595   person_mention,
596   post,
597   post_aggregates,
598   post_like,
599   post_read,
600   post_report,
601   post_saved,
602   private_message,
603   site,
604   site_aggregates,
605   comment_alias_1,
606   person_alias_1,
607   person_alias_2,
608 );