ironflow_api/entities/
auth.rs1use chrono::{DateTime, Utc};
4use serde::{Deserialize, Serialize};
5use uuid::Uuid;
6use validator::Validate;
7
8#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
10#[derive(Debug, Deserialize, Validate)]
11pub struct SignUpRequest {
12 #[validate(email)]
14 pub email: String,
15 #[validate(length(min = 3, message = "username must be at least 3 characters"))]
17 pub username: String,
18 #[validate(length(min = 8, message = "password must be at least 8 characters"))]
20 pub password: String,
21}
22
23#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
25#[derive(Debug, Deserialize)]
26pub struct SignInRequest {
27 pub email: String,
29 pub password: String,
31}
32
33#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
35#[derive(Debug, Serialize)]
36pub struct MeResponse {
37 pub user_id: Uuid,
39 pub email: String,
41 pub username: String,
43 pub is_admin: bool,
45 pub created_at: DateTime<Utc>,
47}
48
49#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
51#[derive(Debug, Deserialize, Validate)]
52pub struct ChangePasswordRequest {
53 pub old_password: String,
55 #[validate(length(min = 8, message = "password must be at least 8 characters"))]
57 pub new_password: String,
58}