api/routes/users/
common.rs1use serde::{Deserialize, Serialize};
2use validator::Validate;
3
4#[derive(Debug, Deserialize, Serialize, Validate)]
5pub struct CreateUserRequest {
6 #[validate(length(min = 1))]
7 pub username: String,
8
9 #[validate(email)]
10 pub email: String,
11
12 #[validate(length(min = 6))]
13 pub password: String,
14}
15
16#[derive(Debug, Deserialize, Serialize, Validate)]
17pub struct BulkCreateUsersRequest {
18 #[validate(length(min = 1))]
19 #[validate(nested)]
20 pub users: Vec<CreateUserRequest>,
21}
22
23#[derive(Debug, Serialize)]
24pub struct UserResponse {
25 pub id: i64,
26 pub username: String,
27 pub email: String,
28 pub admin: bool,
29 pub created_at: String,
30 pub updated_at: String,
31}
32
33impl From<db::models::user::Model> for UserResponse {
34 fn from(user: db::models::user::Model) -> Self {
35 Self {
36 id: user.id,
37 username: user.username,
38 email: user.email,
39 admin: user.admin,
40 created_at: user.created_at.to_rfc3339(),
41 updated_at: user.updated_at.to_rfc3339(),
42 }
43 }
44}