]> Untitled Git - lemmy.git/blob - crates/db_schema/src/lib.rs
055c68e06ded3d5292ba9bff70e3ce51f07bea49
[lemmy.git] / crates / db_schema / src / lib.rs
1 #![recursion_limit = "256"]
2
3 #[cfg(feature = "full")]
4 #[macro_use]
5 extern crate diesel;
6 #[cfg(feature = "full")]
7 #[macro_use]
8 extern crate diesel_derive_newtype;
9
10 #[cfg(feature = "full")]
11 #[macro_use]
12 extern crate diesel_derive_enum;
13
14 // this is used in tests
15 #[cfg(feature = "full")]
16 #[macro_use]
17 extern crate diesel_migrations;
18
19 #[cfg(feature = "full")]
20 #[macro_use]
21 extern crate async_trait;
22
23 pub mod aggregates;
24 #[cfg(feature = "full")]
25 pub mod impls;
26 pub mod newtypes;
27 #[cfg(feature = "full")]
28 #[rustfmt::skip]
29 pub mod schema;
30 pub mod source;
31 #[cfg(feature = "full")]
32 pub mod traits;
33 #[cfg(feature = "full")]
34 pub mod utils;
35
36 use serde::{Deserialize, Serialize};
37 use strum_macros::{Display, EnumString};
38
39 #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq)]
40 #[cfg_attr(feature = "full", derive(DbEnum))]
41 #[cfg_attr(
42   feature = "full",
43   ExistingTypePath = "crate::schema::sql_types::SortTypeEnum"
44 )]
45 #[cfg_attr(feature = "full", DbValueStyle = "verbatim")]
46 pub enum SortType {
47   Active,
48   Hot,
49   New,
50   Old,
51   TopDay,
52   TopWeek,
53   TopMonth,
54   TopYear,
55   TopAll,
56   MostComments,
57   NewComments,
58 }
59
60 #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy)]
61 pub enum CommentSortType {
62   Hot,
63   Top,
64   New,
65   Old,
66 }
67
68 #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq)]
69 #[cfg_attr(feature = "full", derive(DbEnum))]
70 #[cfg_attr(
71   feature = "full",
72   ExistingTypePath = "crate::schema::sql_types::ListingTypeEnum"
73 )]
74 #[cfg_attr(feature = "full", DbValueStyle = "verbatim")]
75 pub enum ListingType {
76   All,
77   Local,
78   Subscribed,
79 }
80
81 #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq)]
82 #[cfg_attr(feature = "full", derive(DbEnum))]
83 #[cfg_attr(
84   feature = "full",
85   ExistingTypePath = "crate::schema::sql_types::RegistrationModeEnum"
86 )]
87 #[cfg_attr(feature = "full", DbValueStyle = "verbatim")]
88 pub enum RegistrationMode {
89   Closed,
90   RequireApplication,
91   Open,
92 }
93
94 #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy)]
95 pub enum SearchType {
96   All,
97   Comments,
98   Posts,
99   Communities,
100   Users,
101   Url,
102 }
103
104 #[derive(EnumString, Display, Debug, PartialEq, Eq, Serialize, Deserialize, Clone, Copy)]
105 pub enum SubscribedType {
106   Subscribed,
107   NotSubscribed,
108   Pending,
109 }
110
111 #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq)]
112 pub enum ModlogActionType {
113   All,
114   ModRemovePost,
115   ModLockPost,
116   ModFeaturePost,
117   ModRemoveComment,
118   ModRemoveCommunity,
119   ModBanFromCommunity,
120   ModAddCommunity,
121   ModTransferCommunity,
122   ModAdd,
123   ModBan,
124   ModHideCommunity,
125   AdminPurgePerson,
126   AdminPurgeCommunity,
127   AdminPurgePost,
128   AdminPurgeComment,
129 }
130
131 #[derive(
132   EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy, Default, PartialEq, Eq,
133 )]
134 pub enum PostFeatureType {
135   #[default]
136   Local,
137   Community,
138 }