1use db_proc_macro::SqlxEnum;
2use serde::{Deserialize, Serialize};
3use std::str::FromStr;
4use strum_macros:: Display;
5
6
7
8
9#[derive(Debug, SqlxEnum, Clone, PartialEq, Eq, Display, Serialize)]
11#[serde(rename_all = "lowercase")]
12pub enum RoleKind {
13 Std,
14 System,
15 Admin,
16 Guest,
17}
18#[allow(clippy::derivable_impls)]
19impl Default for RoleKind {
20 fn default() -> Self {
21 RoleKind::Std
22 }
23}
24
25#[derive(Debug, SqlxEnum, Clone, PartialEq, Eq, Display, Serialize)]
26#[serde(rename_all = "lowercase")]
27pub enum OwnerKind {
28 Private,
29 System,
30 Group,
31 Pubilc,
32}
33
34#[derive(Debug, SqlxEnum, Clone, PartialEq, Eq, Display, Serialize)]
35#[serde(rename_all = "lowercase")]
36pub enum APICategory {
37 Ai,
38 Storage, Translation, Captcha, Auth, Biometric, }
44
45#[derive(Debug, SqlxEnum, Clone, PartialEq, Eq, Display, Serialize)]
46#[serde(rename_all = "lowercase")]
47pub enum FileRouterScope {
48 #[strum(serialize = "/public/file_temp")]
49 Temp,
50 #[strum(serialize = "/public/file_public")]
51 Public,
52 #[strum(serialize = "/api/file_get")]
53 Api,
54}
55
56#[derive(Debug, SqlxEnum, Clone, PartialEq, Eq, Display, Serialize)]
57#[serde(rename_all = "lowercase")]
58pub enum PermtKind {
59 View,
60 Edit,
61 Super,
62}
63
64#[derive(Debug, SqlxEnum, PartialEq, Eq, Serialize, Clone, Display)]
65#[serde(rename_all = "lowercase")]
66pub enum AccessBucket {
67 Public,
68 Group,
69 Temp,
70 Private,
71 Sign,
72 Avatar,
73 System,
74 Null,
75}
76
77#[derive(Debug, SqlxEnum, Clone, PartialEq, Eq, Display, Serialize)]
78pub enum DatabaseKind {
79 Sqlite,
80 MySql,
81 Postgres,
82 Access,
83 Api,
84 SqlServer,
85}
86
87
88#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize, Display)]
92pub enum Operator {
93 #[serde(rename = "=")]
94 #[strum(serialize = "=")]
95 Eq,
96
97 #[serde(rename = ">")]
98 #[strum(serialize = ">")]
99 Gt,
100
101 #[serde(rename = ">=")]
102 #[strum(serialize = ">=")]
103 Gte,
104
105 #[serde(rename = "<")]
106 #[strum(serialize = "<")]
107 Lt,
108
109 #[serde(rename = "<=")]
110 #[strum(serialize = "<=")]
111 Lte,
112
113 #[serde(rename = "!=")]
114 #[strum(serialize = "!=")]
115 Ne,
116
117 #[serde(rename = "LIKE")]
118 #[strum(serialize = "LIKE")]
119 Like,
120
121 #[serde(rename = "LIKE_ANY")]
122 #[strum(serialize = "LIKE_ANY")]
123 LikeAny,
124
125 #[serde(rename = "BETWEEN")]
126 #[strum(serialize = "BETWEEN")]
127 Between,
128
129 #[serde(rename = "NOT_BETWEEN")]
130 #[strum(serialize = "NOT_BETWEEN")]
131 NotBetween,
132
133 #[serde(rename = "IN_QUERY")]
134 #[strum(serialize = "IN_QUERY")]
135 InQuery,
136
137 #[serde(rename = "NOT_IN_QUERY")]
138 #[strum(serialize = "NOT_IN_QUERY")]
139 NotInQuery,
140
141 #[serde(rename = "NOT_NULL")]
142 #[strum(serialize = "NOT_NULL")]
143 NotNull,
144
145 #[serde(rename = "IS_NULL")]
146 #[strum(serialize = "IS_NULL")]
147 IsNull,
148
149 #[serde(rename = "IN")]
150 #[strum(serialize = "IN")]
151 In,
152
153 #[serde(rename = "NOT_IN")]
154 #[strum(serialize = "NOT_IN")]
155 NotIn,
156
157 #[serde(rename = "REGEXP")]
158 #[strum(serialize = "REGEXP")]
159 Regexp,
160}
161
162#[derive(Debug, PartialEq, Eq, Clone, Serialize,Deserialize)]
163pub enum Logical {
164 #[serde(rename = "AND")]
165 And,
166 #[serde(rename = "OR")]
167 Or,
168}
169
170
171
172
173#[test]
174fn dev(){
175 println!("{}",AccessBucket::Private.to_lower())
176}