use serde::{Deserialize, Serialize};
use uuid::Uuid;
use validator::Validate;
#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
#[derive(Debug, Deserialize, Validate)]
pub struct SignUpRequest {
#[validate(email)]
pub email: String,
#[validate(length(min = 3, message = "username must be at least 3 characters"))]
pub username: String,
#[validate(length(min = 8, message = "password must be at least 8 characters"))]
pub password: String,
}
#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
#[derive(Debug, Deserialize)]
pub struct SignInRequest {
pub email: String,
pub password: String,
}
#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
#[derive(Debug, Serialize)]
pub struct MeResponse {
pub user_id: Uuid,
pub email: String,
pub username: String,
pub is_admin: bool,
}