]> Untitled Git - lemmy.git/blob - crates/db_schema/src/schema.rs
implement language tags for site/community in db and api (#2434)
[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 -> Text,
9         sensitive -> Nullable<Bool>,
10     }
11 }
12
13 table! {
14   use diesel_ltree::sql_types::Ltree;
15   use diesel::sql_types::*;
16
17     comment (id) {
18         id -> Int4,
19         creator_id -> Int4,
20         post_id -> Int4,
21         content -> Text,
22         removed -> Bool,
23         published -> Timestamp,
24         updated -> Nullable<Timestamp>,
25         deleted -> Bool,
26         ap_id -> Varchar,
27         local -> Bool,
28         path -> Ltree,
29         distinguished -> Bool,
30         language_id -> Int4,
31     }
32 }
33
34 table! {
35     comment_aggregates (id) {
36         id -> Int4,
37         comment_id -> Int4,
38         score -> Int8,
39         upvotes -> Int8,
40         downvotes -> Int8,
41         published -> Timestamp,
42         child_count ->  Int4,
43     }
44 }
45
46 table! {
47     comment_like (id) {
48         id -> Int4,
49         person_id -> Int4,
50         comment_id -> Int4,
51         post_id -> Int4,
52         score -> Int2,
53         published -> Timestamp,
54     }
55 }
56
57 table! {
58     comment_report (id) {
59         id -> Int4,
60         creator_id -> Int4,
61         comment_id -> Int4,
62         original_comment_text -> Text,
63         reason -> Text,
64         resolved -> Bool,
65         resolver_id -> Nullable<Int4>,
66         published -> Timestamp,
67         updated -> Nullable<Timestamp>,
68     }
69 }
70
71 table! {
72     comment_saved (id) {
73         id -> Int4,
74         comment_id -> Int4,
75         person_id -> Int4,
76         published -> Timestamp,
77     }
78 }
79
80 table! {
81     community (id) {
82         id -> Int4,
83         name -> Varchar,
84         title -> Varchar,
85         description -> Nullable<Text>,
86         removed -> Bool,
87         published -> Timestamp,
88         updated -> Nullable<Timestamp>,
89         deleted -> Bool,
90         nsfw -> Bool,
91         actor_id -> Varchar,
92         local -> Bool,
93         private_key -> Nullable<Text>,
94         public_key -> Text,
95         last_refreshed_at -> Timestamp,
96         icon -> Nullable<Varchar>,
97         banner -> Nullable<Varchar>,
98         followers_url -> Varchar,
99         inbox_url -> Varchar,
100         shared_inbox_url -> Nullable<Varchar>,
101         hidden -> Bool,
102         posting_restricted_to_mods -> Bool,
103     }
104 }
105
106 table! {
107     community_aggregates (id) {
108         id -> Int4,
109         community_id -> Int4,
110         subscribers -> Int8,
111         posts -> Int8,
112         comments -> Int8,
113         published -> Timestamp,
114         users_active_day -> Int8,
115         users_active_week -> Int8,
116         users_active_month -> Int8,
117         users_active_half_year -> Int8,
118     }
119 }
120
121 table! {
122     community_follower (id) {
123         id -> Int4,
124         community_id -> Int4,
125         person_id -> Int4,
126         published -> Timestamp,
127         pending -> Nullable<Bool>,
128     }
129 }
130
131 table! {
132     community_moderator (id) {
133         id -> Int4,
134         community_id -> Int4,
135         person_id -> Int4,
136         published -> Timestamp,
137     }
138 }
139
140 table! {
141     community_person_ban (id) {
142         id -> Int4,
143         community_id -> Int4,
144         person_id -> Int4,
145         published -> Timestamp,
146         expires -> Nullable<Timestamp>,
147     }
148 }
149
150 table! {
151     local_user (id) {
152         id -> Int4,
153         person_id -> Int4,
154         password_encrypted -> Text,
155         email -> Nullable<Text>,
156         show_nsfw -> Bool,
157         theme -> Varchar,
158         default_sort_type -> Int2,
159         default_listing_type -> Int2,
160         interface_language -> Varchar,
161         show_avatars -> Bool,
162         send_notifications_to_email -> Bool,
163         validator_time -> Timestamp,
164         show_bot_accounts -> Bool,
165         show_scores -> Bool,
166         show_read_posts -> Bool,
167         show_new_post_notifs -> Bool,
168         email_verified -> Bool,
169         accepted_application -> Bool,
170     }
171 }
172
173 table! {
174     mod_add (id) {
175         id -> Int4,
176         mod_person_id -> Int4,
177         other_person_id -> Int4,
178         removed -> Nullable<Bool>,
179         when_ -> Timestamp,
180     }
181 }
182
183 table! {
184     mod_add_community (id) {
185         id -> Int4,
186         mod_person_id -> Int4,
187         other_person_id -> Int4,
188         community_id -> Int4,
189         removed -> Nullable<Bool>,
190         when_ -> Timestamp,
191     }
192 }
193
194 table! {
195     mod_transfer_community (id) {
196         id -> Int4,
197         mod_person_id -> Int4,
198         other_person_id -> Int4,
199         community_id -> Int4,
200         removed -> Nullable<Bool>,
201         when_ -> Timestamp,
202     }
203 }
204
205 table! {
206     mod_ban (id) {
207         id -> Int4,
208         mod_person_id -> Int4,
209         other_person_id -> Int4,
210         reason -> Nullable<Text>,
211         banned -> Nullable<Bool>,
212         expires -> Nullable<Timestamp>,
213         when_ -> Timestamp,
214     }
215 }
216
217 table! {
218     mod_ban_from_community (id) {
219         id -> Int4,
220         mod_person_id -> Int4,
221         other_person_id -> Int4,
222         community_id -> Int4,
223         reason -> Nullable<Text>,
224         banned -> Nullable<Bool>,
225         expires -> Nullable<Timestamp>,
226         when_ -> Timestamp,
227     }
228 }
229
230 table! {
231     mod_lock_post (id) {
232         id -> Int4,
233         mod_person_id -> Int4,
234         post_id -> Int4,
235         locked -> Nullable<Bool>,
236         when_ -> Timestamp,
237     }
238 }
239
240 table! {
241     mod_remove_comment (id) {
242         id -> Int4,
243         mod_person_id -> Int4,
244         comment_id -> Int4,
245         reason -> Nullable<Text>,
246         removed -> Nullable<Bool>,
247         when_ -> Timestamp,
248     }
249 }
250
251 table! {
252     mod_remove_community (id) {
253         id -> Int4,
254         mod_person_id -> Int4,
255         community_id -> Int4,
256         reason -> Nullable<Text>,
257         removed -> Nullable<Bool>,
258         expires -> Nullable<Timestamp>,
259         when_ -> Timestamp,
260     }
261 }
262
263 table! {
264     mod_remove_post (id) {
265         id -> Int4,
266         mod_person_id -> Int4,
267         post_id -> Int4,
268         reason -> Nullable<Text>,
269         removed -> Nullable<Bool>,
270         when_ -> Timestamp,
271     }
272 }
273
274 table! {
275     mod_sticky_post (id) {
276         id -> Int4,
277         mod_person_id -> Int4,
278         post_id -> Int4,
279         stickied -> Nullable<Bool>,
280         when_ -> Timestamp,
281     }
282 }
283
284 table! {
285     password_reset_request (id) {
286         id -> Int4,
287         token_encrypted -> Text,
288         published -> Timestamp,
289         local_user_id -> Int4,
290     }
291 }
292
293 table! {
294     person (id) {
295         id -> Int4,
296         name -> Varchar,
297         display_name -> Nullable<Varchar>,
298         avatar -> Nullable<Varchar>,
299         banned -> Bool,
300         published -> Timestamp,
301         updated -> Nullable<Timestamp>,
302         actor_id -> Varchar,
303         bio -> Nullable<Text>,
304         local -> Bool,
305         private_key -> Nullable<Text>,
306         public_key -> Text,
307         last_refreshed_at -> Timestamp,
308         banner -> Nullable<Varchar>,
309         deleted -> Bool,
310         inbox_url -> Varchar,
311         shared_inbox_url -> Nullable<Varchar>,
312         matrix_user_id -> Nullable<Text>,
313         admin -> Bool,
314         bot_account -> Bool,
315         ban_expires -> Nullable<Timestamp>,
316     }
317 }
318
319 table! {
320     person_aggregates (id) {
321         id -> Int4,
322         person_id -> Int4,
323         post_count -> Int8,
324         post_score -> Int8,
325         comment_count -> Int8,
326         comment_score -> Int8,
327     }
328 }
329
330 table! {
331     person_ban (id) {
332         id -> Int4,
333         person_id -> Int4,
334         published -> Timestamp,
335     }
336 }
337
338 table! {
339     person_mention (id) {
340         id -> Int4,
341         recipient_id -> Int4,
342         comment_id -> Int4,
343         read -> Bool,
344         published -> Timestamp,
345     }
346 }
347
348 table! {
349     comment_reply (id) {
350         id -> Int4,
351         recipient_id -> Int4,
352         comment_id -> Int4,
353         read -> Bool,
354         published -> Timestamp,
355     }
356 }
357
358 table! {
359     post (id) {
360         id -> Int4,
361         name -> Varchar,
362         url -> Nullable<Varchar>,
363         body -> Nullable<Text>,
364         creator_id -> Int4,
365         community_id -> Int4,
366         removed -> Bool,
367         locked -> Bool,
368         published -> Timestamp,
369         updated -> Nullable<Timestamp>,
370         deleted -> Bool,
371         nsfw -> Bool,
372         stickied -> Bool,
373         embed_title -> Nullable<Text>,
374         embed_description -> Nullable<Text>,
375         embed_video_url -> Nullable<Text>,
376         thumbnail_url -> Nullable<Text>,
377         ap_id -> Varchar,
378         local -> Bool,
379         language_id -> Int4,
380     }
381 }
382
383 table! {
384     person_post_aggregates (id) {
385         id -> Int4,
386         person_id -> Int4,
387         post_id -> Int4,
388         read_comments -> Int8,
389         published -> Timestamp,
390     }
391 }
392
393 table! {
394     post_aggregates (id) {
395         id -> Int4,
396         post_id -> Int4,
397         comments -> Int8,
398         score -> Int8,
399         upvotes -> Int8,
400         downvotes -> Int8,
401         stickied -> Bool,
402         published -> Timestamp,
403         newest_comment_time_necro -> Timestamp,
404         newest_comment_time -> Timestamp,
405     }
406 }
407
408 table! {
409     post_like (id) {
410         id -> Int4,
411         post_id -> Int4,
412         person_id -> Int4,
413         score -> Int2,
414         published -> Timestamp,
415     }
416 }
417
418 table! {
419     post_read (id) {
420         id -> Int4,
421         post_id -> Int4,
422         person_id -> Int4,
423         published -> Timestamp,
424     }
425 }
426
427 table! {
428     post_report (id) {
429         id -> Int4,
430         creator_id -> Int4,
431         post_id -> Int4,
432         original_post_name -> Varchar,
433         original_post_url -> Nullable<Text>,
434         original_post_body -> Nullable<Text>,
435         reason -> Text,
436         resolved -> Bool,
437         resolver_id -> Nullable<Int4>,
438         published -> Timestamp,
439         updated -> Nullable<Timestamp>,
440     }
441 }
442
443 table! {
444     post_saved (id) {
445         id -> Int4,
446         post_id -> Int4,
447         person_id -> Int4,
448         published -> Timestamp,
449     }
450 }
451
452 table! {
453     private_message (id) {
454         id -> Int4,
455         creator_id -> Int4,
456         recipient_id -> Int4,
457         content -> Text,
458         deleted -> Bool,
459         read -> Bool,
460         published -> Timestamp,
461         updated -> Nullable<Timestamp>,
462         ap_id -> Varchar,
463         local -> Bool,
464     }
465 }
466
467 table! {
468     private_message_report (id) {
469         id -> Int4,
470         creator_id -> Int4,
471         private_message_id -> Int4,
472         original_pm_text -> Text,
473         reason -> Text,
474         resolved -> Bool,
475         resolver_id -> Nullable<Int4>,
476         published -> Timestamp,
477         updated -> Nullable<Timestamp>,
478     }
479 }
480
481 table! {
482     site (id) {
483         id -> Int4,
484         name -> Varchar,
485         sidebar -> Nullable<Text>,
486         published -> Timestamp,
487         updated -> Nullable<Timestamp>,
488         enable_downvotes -> Bool,
489         open_registration -> Bool,
490         enable_nsfw -> Bool,
491         icon -> Nullable<Varchar>,
492         banner -> Nullable<Varchar>,
493         description -> Nullable<Text>,
494         community_creation_admin_only -> Bool,
495         require_email_verification -> Bool,
496         require_application -> Bool,
497         application_question -> Nullable<Text>,
498         private_instance -> Bool,
499         actor_id -> Text,
500         last_refreshed_at -> Timestamp,
501         inbox_url -> Text,
502         private_key -> Nullable<Text>,
503         public_key -> Text,
504         default_theme -> Text,
505         default_post_listing_type -> Text,
506         legal_information -> Nullable<Text>,
507         application_email_admins -> Bool,
508         hide_modlog_mod_names -> Bool,
509     }
510 }
511
512 table! {
513     site_aggregates (id) {
514         id -> Int4,
515         site_id -> Int4,
516         users -> Int8,
517         posts -> Int8,
518         comments -> Int8,
519         communities -> Int8,
520         users_active_day -> Int8,
521         users_active_week -> Int8,
522         users_active_month -> Int8,
523         users_active_half_year -> Int8,
524     }
525 }
526
527 table! {
528     person_block (id) {
529         id -> Int4,
530         person_id -> Int4,
531         target_id -> Int4,
532         published -> Timestamp,
533     }
534 }
535
536 table! {
537     community_block (id) {
538         id -> Int4,
539         person_id -> Int4,
540         community_id -> Int4,
541         published -> Timestamp,
542     }
543 }
544
545 table! {
546   secret(id) {
547     id -> Int4,
548     jwt_secret -> Varchar,
549   }
550 }
551
552 table! {
553   admin_purge_comment (id) {
554     id -> Int4,
555     admin_person_id -> Int4,
556     post_id -> Int4,
557     reason -> Nullable<Text>,
558     when_ -> Timestamp,
559   }
560 }
561
562 table! {
563   email_verification (id) {
564     id -> Int4,
565     local_user_id -> Int4,
566     email -> Text,
567     verification_token -> Varchar,
568     published -> Timestamp,
569   }
570 }
571
572 table! {
573   admin_purge_community (id) {
574     id -> Int4,
575     admin_person_id -> Int4,
576     reason -> Nullable<Text>,
577     when_ -> Timestamp,
578   }
579 }
580
581 table! {
582   admin_purge_person (id) {
583     id -> Int4,
584     admin_person_id -> Int4,
585     reason -> Nullable<Text>,
586     when_ -> Timestamp,
587   }
588 }
589
590 table! {
591   admin_purge_post (id) {
592     id -> Int4,
593     admin_person_id -> Int4,
594     community_id -> Int4,
595     reason -> Nullable<Text>,
596     when_ -> Timestamp,
597   }
598 }
599
600 table! {
601     registration_application (id) {
602         id -> Int4,
603         local_user_id -> Int4,
604         answer -> Text,
605         admin_id -> Nullable<Int4>,
606         deny_reason -> Nullable<Text>,
607         published -> Timestamp,
608     }
609 }
610
611 table! {
612     mod_hide_community (id) {
613         id -> Int4,
614         community_id -> Int4,
615         mod_person_id -> Int4,
616         reason -> Nullable<Text>,
617         hidden -> Nullable<Bool>,
618         when_ -> Timestamp,
619     }
620 }
621
622 table! {
623     language (id) {
624         id -> Int4,
625         code -> Text,
626         name -> Text,
627     }
628 }
629
630 table! {
631     local_user_language(id) {
632         id -> Int4,
633         local_user_id -> Int4,
634         language_id -> Int4,
635     }
636 }
637
638 table! {
639     site_language(id) {
640         id -> Int4,
641         site_id -> Int4,
642         language_id -> Int4,
643     }
644 }
645
646 table! {
647     community_language(id) {
648         id -> Int4,
649         community_id -> Int4,
650         language_id -> Int4,
651     }
652 }
653
654 joinable!(person_block -> person (person_id));
655
656 joinable!(comment -> person (creator_id));
657 joinable!(comment -> post (post_id));
658 joinable!(comment_aggregates -> comment (comment_id));
659 joinable!(comment_like -> comment (comment_id));
660 joinable!(comment_like -> person (person_id));
661 joinable!(comment_like -> post (post_id));
662 joinable!(comment_report -> comment (comment_id));
663 joinable!(comment_saved -> comment (comment_id));
664 joinable!(comment_saved -> person (person_id));
665 joinable!(community_aggregates -> community (community_id));
666 joinable!(community_block -> community (community_id));
667 joinable!(community_block -> person (person_id));
668 joinable!(community_follower -> community (community_id));
669 joinable!(community_follower -> person (person_id));
670 joinable!(community_moderator -> community (community_id));
671 joinable!(community_moderator -> person (person_id));
672 joinable!(community_person_ban -> community (community_id));
673 joinable!(community_person_ban -> person (person_id));
674 joinable!(local_user -> person (person_id));
675 joinable!(mod_add_community -> community (community_id));
676 joinable!(mod_transfer_community -> community (community_id));
677 joinable!(mod_ban_from_community -> community (community_id));
678 joinable!(mod_lock_post -> person (mod_person_id));
679 joinable!(mod_lock_post -> post (post_id));
680 joinable!(mod_remove_comment -> comment (comment_id));
681 joinable!(mod_remove_comment -> person (mod_person_id));
682 joinable!(mod_remove_community -> community (community_id));
683 joinable!(mod_remove_community -> person (mod_person_id));
684 joinable!(mod_remove_post -> person (mod_person_id));
685 joinable!(mod_remove_post -> post (post_id));
686 joinable!(mod_sticky_post -> person (mod_person_id));
687 joinable!(mod_sticky_post -> post (post_id));
688 joinable!(password_reset_request -> local_user (local_user_id));
689 joinable!(person_aggregates -> person (person_id));
690 joinable!(person_ban -> person (person_id));
691 joinable!(person_mention -> comment (comment_id));
692 joinable!(person_mention -> person (recipient_id));
693 joinable!(comment_reply -> comment (comment_id));
694 joinable!(comment_reply -> person (recipient_id));
695 joinable!(post -> community (community_id));
696 joinable!(post -> person (creator_id));
697 joinable!(person_post_aggregates -> post (post_id));
698 joinable!(person_post_aggregates -> person (person_id));
699 joinable!(post_aggregates -> post (post_id));
700 joinable!(post_like -> person (person_id));
701 joinable!(post_like -> post (post_id));
702 joinable!(post_read -> person (person_id));
703 joinable!(post_read -> post (post_id));
704 joinable!(post_report -> post (post_id));
705 joinable!(post_saved -> person (person_id));
706 joinable!(post_saved -> post (post_id));
707 joinable!(site_aggregates -> site (site_id));
708 joinable!(email_verification -> local_user (local_user_id));
709 joinable!(registration_application -> local_user (local_user_id));
710 joinable!(registration_application -> person (admin_id));
711 joinable!(mod_hide_community -> person (mod_person_id));
712 joinable!(mod_hide_community -> community (community_id));
713 joinable!(post -> language (language_id));
714 joinable!(comment -> language (language_id));
715 joinable!(local_user_language -> language (language_id));
716 joinable!(local_user_language -> local_user (local_user_id));
717 joinable!(private_message_report -> private_message (private_message_id));
718 joinable!(site_language -> language (language_id));
719 joinable!(site_language -> site (site_id));
720 joinable!(community_language -> language (language_id));
721 joinable!(community_language -> community (community_id));
722
723 joinable!(admin_purge_comment -> person (admin_person_id));
724 joinable!(admin_purge_comment -> post (post_id));
725 joinable!(admin_purge_community -> person (admin_person_id));
726 joinable!(admin_purge_person -> person (admin_person_id));
727 joinable!(admin_purge_post -> community (community_id));
728 joinable!(admin_purge_post -> person (admin_person_id));
729
730 allow_tables_to_appear_in_same_query!(
731   activity,
732   comment,
733   comment_aggregates,
734   community_block,
735   comment_like,
736   comment_report,
737   comment_saved,
738   community,
739   community_aggregates,
740   community_follower,
741   community_moderator,
742   community_person_ban,
743   local_user,
744   mod_add,
745   mod_add_community,
746   mod_transfer_community,
747   mod_ban,
748   mod_ban_from_community,
749   mod_lock_post,
750   mod_remove_comment,
751   mod_remove_community,
752   mod_remove_post,
753   mod_sticky_post,
754   mod_hide_community,
755   password_reset_request,
756   person,
757   person_aggregates,
758   person_ban,
759   person_block,
760   person_mention,
761   person_post_aggregates,
762   comment_reply,
763   post,
764   post_aggregates,
765   post_like,
766   post_read,
767   post_report,
768   post_saved,
769   private_message,
770   private_message_report,
771   site,
772   site_aggregates,
773   admin_purge_comment,
774   admin_purge_community,
775   admin_purge_person,
776   admin_purge_post,
777   email_verification,
778   registration_application,
779   language,
780   local_user_language,
781   site_language,
782   community_language,
783 );