Skip to main content

ironflow_api/entities/
auth.rs

1//! Auth request and response DTOs.
2
3use serde::{Deserialize, Serialize};
4use uuid::Uuid;
5use validator::Validate;
6
7/// Sign-up request body.
8#[derive(Debug, Deserialize, Validate)]
9pub struct SignUpRequest {
10    /// Email address.
11    #[validate(email)]
12    pub email: String,
13    /// Display username.
14    #[validate(length(min = 3, message = "username must be at least 3 characters"))]
15    pub username: String,
16    /// Plaintext password (min 8 characters).
17    #[validate(length(min = 8, message = "password must be at least 8 characters"))]
18    pub password: String,
19}
20
21/// Sign-in request body.
22#[derive(Debug, Deserialize)]
23pub struct SignInRequest {
24    /// Email address.
25    pub email: String,
26    /// Plaintext password.
27    pub password: String,
28}
29
30/// Current user profile response.
31#[derive(Debug, Serialize)]
32pub struct MeResponse {
33    /// User ID.
34    pub user_id: Uuid,
35    /// Email address.
36    pub email: String,
37    /// Display username.
38    pub username: String,
39    /// Admin flag.
40    pub is_admin: bool,
41}