api/routes/users/
common.rs

1use 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}