]> Untitled Git - lemmy.git/blob - crates/db_schema/src/schema.rs
Implement reports for private messages (#2433)
[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     post_aggregates (id) {
385         id -> Int4,
386         post_id -> Int4,
387         comments -> Int8,
388         score -> Int8,
389         upvotes -> Int8,
390         downvotes -> Int8,
391         stickied -> Bool,
392         published -> Timestamp,
393         newest_comment_time_necro -> Timestamp,
394         newest_comment_time -> Timestamp,
395     }
396 }
397
398 table! {
399     post_like (id) {
400         id -> Int4,
401         post_id -> Int4,
402         person_id -> Int4,
403         score -> Int2,
404         published -> Timestamp,
405     }
406 }
407
408 table! {
409     post_read (id) {
410         id -> Int4,
411         post_id -> Int4,
412         person_id -> Int4,
413         published -> Timestamp,
414     }
415 }
416
417 table! {
418     post_report (id) {
419         id -> Int4,
420         creator_id -> Int4,
421         post_id -> Int4,
422         original_post_name -> Varchar,
423         original_post_url -> Nullable<Text>,
424         original_post_body -> Nullable<Text>,
425         reason -> Text,
426         resolved -> Bool,
427         resolver_id -> Nullable<Int4>,
428         published -> Timestamp,
429         updated -> Nullable<Timestamp>,
430     }
431 }
432
433 table! {
434     post_saved (id) {
435         id -> Int4,
436         post_id -> Int4,
437         person_id -> Int4,
438         published -> Timestamp,
439     }
440 }
441
442 table! {
443     private_message (id) {
444         id -> Int4,
445         creator_id -> Int4,
446         recipient_id -> Int4,
447         content -> Text,
448         deleted -> Bool,
449         read -> Bool,
450         published -> Timestamp,
451         updated -> Nullable<Timestamp>,
452         ap_id -> Varchar,
453         local -> Bool,
454     }
455 }
456
457 table! {
458     private_message_report (id) {
459         id -> Int4,
460         creator_id -> Int4,
461         private_message_id -> Int4,
462         original_pm_text -> Text,
463         reason -> Text,
464         resolved -> Bool,
465         resolver_id -> Nullable<Int4>,
466         published -> Timestamp,
467         updated -> Nullable<Timestamp>,
468     }
469 }
470
471 table! {
472     site (id) {
473         id -> Int4,
474         name -> Varchar,
475         sidebar -> Nullable<Text>,
476         published -> Timestamp,
477         updated -> Nullable<Timestamp>,
478         enable_downvotes -> Bool,
479         open_registration -> Bool,
480         enable_nsfw -> Bool,
481         icon -> Nullable<Varchar>,
482         banner -> Nullable<Varchar>,
483         description -> Nullable<Text>,
484         community_creation_admin_only -> Bool,
485         require_email_verification -> Bool,
486         require_application -> Bool,
487         application_question -> Nullable<Text>,
488         private_instance -> Bool,
489         actor_id -> Text,
490         last_refreshed_at -> Timestamp,
491         inbox_url -> Text,
492         private_key -> Nullable<Text>,
493         public_key -> Text,
494         default_theme -> Text,
495         default_post_listing_type -> Text,
496         legal_information -> Nullable<Text>,
497         hide_modlog_mod_names -> Bool,
498     }
499 }
500
501 table! {
502     site_aggregates (id) {
503         id -> Int4,
504         site_id -> Int4,
505         users -> Int8,
506         posts -> Int8,
507         comments -> Int8,
508         communities -> Int8,
509         users_active_day -> Int8,
510         users_active_week -> Int8,
511         users_active_month -> Int8,
512         users_active_half_year -> Int8,
513     }
514 }
515
516 table! {
517     person_block (id) {
518         id -> Int4,
519         person_id -> Int4,
520         target_id -> Int4,
521         published -> Timestamp,
522     }
523 }
524
525 table! {
526     community_block (id) {
527         id -> Int4,
528         person_id -> Int4,
529         community_id -> Int4,
530         published -> Timestamp,
531     }
532 }
533
534 // These are necessary since diesel doesn't have self joins / aliases
535 table! {
536     person_alias_1 (id) {
537         id -> Int4,
538         name -> Varchar,
539         display_name -> Nullable<Varchar>,
540         avatar -> Nullable<Varchar>,
541         banned -> Bool,
542         published -> Timestamp,
543         updated -> Nullable<Timestamp>,
544         actor_id -> Varchar,
545         bio -> Nullable<Text>,
546         local -> Bool,
547         private_key -> Nullable<Text>,
548         public_key -> Text,
549         last_refreshed_at -> Timestamp,
550         banner -> Nullable<Varchar>,
551         deleted -> Bool,
552         inbox_url -> Varchar,
553         shared_inbox_url -> Nullable<Varchar>,
554         matrix_user_id -> Nullable<Text>,
555         admin -> Bool,
556         bot_account -> Bool,
557         ban_expires -> Nullable<Timestamp>,
558     }
559 }
560
561 table! {
562     person_alias_2 (id) {
563         id -> Int4,
564         name -> Varchar,
565         display_name -> Nullable<Varchar>,
566         avatar -> Nullable<Varchar>,
567         banned -> Bool,
568         published -> Timestamp,
569         updated -> Nullable<Timestamp>,
570         actor_id -> Varchar,
571         bio -> Nullable<Text>,
572         local -> Bool,
573         private_key -> Nullable<Text>,
574         public_key -> Text,
575         last_refreshed_at -> Timestamp,
576         banner -> Nullable<Varchar>,
577         deleted -> Bool,
578         inbox_url -> Varchar,
579         shared_inbox_url -> Nullable<Varchar>,
580         matrix_user_id -> Nullable<Text>,
581         admin -> Bool,
582         bot_account -> Bool,
583         ban_expires -> Nullable<Timestamp>,
584     }
585 }
586
587 table! {
588   secret(id) {
589     id -> Int4,
590     jwt_secret -> Varchar,
591   }
592 }
593
594 table! {
595   admin_purge_comment (id) {
596     id -> Int4,
597     admin_person_id -> Int4,
598     post_id -> Int4,
599     reason -> Nullable<Text>,
600     when_ -> Timestamp,
601   }
602 }
603
604 table! {
605   email_verification (id) {
606     id -> Int4,
607     local_user_id -> Int4,
608     email -> Text,
609     verification_token -> Varchar,
610     published -> Timestamp,
611   }
612 }
613
614 table! {
615   admin_purge_community (id) {
616     id -> Int4,
617     admin_person_id -> Int4,
618     reason -> Nullable<Text>,
619     when_ -> Timestamp,
620   }
621 }
622
623 table! {
624   admin_purge_person (id) {
625     id -> Int4,
626     admin_person_id -> Int4,
627     reason -> Nullable<Text>,
628     when_ -> Timestamp,
629   }
630 }
631
632 table! {
633   admin_purge_post (id) {
634     id -> Int4,
635     admin_person_id -> Int4,
636     community_id -> Int4,
637     reason -> Nullable<Text>,
638     when_ -> Timestamp,
639   }
640 }
641
642 table! {
643     registration_application (id) {
644         id -> Int4,
645         local_user_id -> Int4,
646         answer -> Text,
647         admin_id -> Nullable<Int4>,
648         deny_reason -> Nullable<Text>,
649         published -> Timestamp,
650     }
651 }
652
653 table! {
654     mod_hide_community (id) {
655         id -> Int4,
656         community_id -> Int4,
657         mod_person_id -> Int4,
658         reason -> Nullable<Text>,
659         hidden -> Nullable<Bool>,
660         when_ -> Timestamp,
661     }
662 }
663
664 table! {
665     language (id) {
666         id -> Int4,
667         code -> Text,
668         name -> Text,
669     }
670 }
671
672 table! {
673     local_user_language(id) {
674         id -> Int4,
675         local_user_id -> Int4,
676         language_id -> Int4,
677     }
678 }
679
680 joinable!(person_mention -> person_alias_1 (recipient_id));
681 joinable!(comment_reply -> person_alias_1 (recipient_id));
682 joinable!(post -> person_alias_1 (creator_id));
683 joinable!(comment -> person_alias_1 (creator_id));
684 joinable!(private_message_report -> person_alias_1 (resolver_id));
685
686 joinable!(post_report -> person_alias_2 (resolver_id));
687 joinable!(comment_report -> person_alias_2 (resolver_id));
688 joinable!(private_message_report -> person_alias_2 (resolver_id));
689
690 joinable!(person_block -> person (person_id));
691 joinable!(person_block -> person_alias_1 (target_id));
692
693 joinable!(comment -> person (creator_id));
694 joinable!(comment -> post (post_id));
695 joinable!(comment_aggregates -> comment (comment_id));
696 joinable!(comment_like -> comment (comment_id));
697 joinable!(comment_like -> person (person_id));
698 joinable!(comment_like -> post (post_id));
699 joinable!(comment_report -> comment (comment_id));
700 joinable!(comment_saved -> comment (comment_id));
701 joinable!(comment_saved -> person (person_id));
702 joinable!(community_aggregates -> community (community_id));
703 joinable!(community_block -> community (community_id));
704 joinable!(community_block -> person (person_id));
705 joinable!(community_follower -> community (community_id));
706 joinable!(community_follower -> person (person_id));
707 joinable!(community_moderator -> community (community_id));
708 joinable!(community_moderator -> person (person_id));
709 joinable!(community_person_ban -> community (community_id));
710 joinable!(community_person_ban -> person (person_id));
711 joinable!(local_user -> person (person_id));
712 joinable!(mod_add_community -> community (community_id));
713 joinable!(mod_transfer_community -> community (community_id));
714 joinable!(mod_ban_from_community -> community (community_id));
715 joinable!(mod_lock_post -> person (mod_person_id));
716 joinable!(mod_lock_post -> post (post_id));
717 joinable!(mod_remove_comment -> comment (comment_id));
718 joinable!(mod_remove_comment -> person (mod_person_id));
719 joinable!(mod_remove_community -> community (community_id));
720 joinable!(mod_remove_community -> person (mod_person_id));
721 joinable!(mod_remove_post -> person (mod_person_id));
722 joinable!(mod_remove_post -> post (post_id));
723 joinable!(mod_sticky_post -> person (mod_person_id));
724 joinable!(mod_sticky_post -> post (post_id));
725 joinable!(password_reset_request -> local_user (local_user_id));
726 joinable!(person_aggregates -> person (person_id));
727 joinable!(person_ban -> person (person_id));
728 joinable!(person_mention -> comment (comment_id));
729 joinable!(person_mention -> person (recipient_id));
730 joinable!(comment_reply -> comment (comment_id));
731 joinable!(comment_reply -> person (recipient_id));
732 joinable!(post -> community (community_id));
733 joinable!(post -> person (creator_id));
734 joinable!(post_aggregates -> post (post_id));
735 joinable!(post_like -> person (person_id));
736 joinable!(post_like -> post (post_id));
737 joinable!(post_read -> person (person_id));
738 joinable!(post_read -> post (post_id));
739 joinable!(post_report -> post (post_id));
740 joinable!(post_saved -> person (person_id));
741 joinable!(post_saved -> post (post_id));
742 joinable!(site_aggregates -> site (site_id));
743 joinable!(email_verification -> local_user (local_user_id));
744 joinable!(registration_application -> local_user (local_user_id));
745 joinable!(registration_application -> person (admin_id));
746 joinable!(mod_hide_community -> person (mod_person_id));
747 joinable!(mod_hide_community -> community (community_id));
748 joinable!(post -> language (language_id));
749 joinable!(comment -> language (language_id));
750 joinable!(local_user_language -> language (language_id));
751 joinable!(local_user_language -> local_user (local_user_id));
752 joinable!(private_message_report -> private_message (private_message_id));
753
754 joinable!(admin_purge_comment -> person (admin_person_id));
755 joinable!(admin_purge_comment -> post (post_id));
756 joinable!(admin_purge_community -> person (admin_person_id));
757 joinable!(admin_purge_person -> person (admin_person_id));
758 joinable!(admin_purge_post -> community (community_id));
759 joinable!(admin_purge_post -> person (admin_person_id));
760
761 allow_tables_to_appear_in_same_query!(
762   activity,
763   comment,
764   comment_aggregates,
765   community_block,
766   comment_like,
767   comment_report,
768   comment_saved,
769   community,
770   community_aggregates,
771   community_follower,
772   community_moderator,
773   community_person_ban,
774   local_user,
775   mod_add,
776   mod_add_community,
777   mod_transfer_community,
778   mod_ban,
779   mod_ban_from_community,
780   mod_lock_post,
781   mod_remove_comment,
782   mod_remove_community,
783   mod_remove_post,
784   mod_sticky_post,
785   mod_hide_community,
786   password_reset_request,
787   person,
788   person_aggregates,
789   person_ban,
790   person_block,
791   person_mention,
792   comment_reply,
793   post,
794   post_aggregates,
795   post_like,
796   post_read,
797   post_report,
798   post_saved,
799   private_message,
800   private_message_report,
801   site,
802   site_aggregates,
803   person_alias_1,
804   person_alias_2,
805   admin_purge_comment,
806   admin_purge_community,
807   admin_purge_person,
808   admin_purge_post,
809   email_verification,
810   registration_application,
811   language,
812   local_user_language
813 );