settings_dto.rs
77 lignes · 2193 octets
//! Settings DTOs //! Feature 009: Admin & Settings - Phase 7, 8, 9 //! //! Data Transfer Objects for user settings endpoints use serde::{Deserialize, Serialize}; /// Request DTO for profile update (Phase 7) #[derive(Debug, Deserialize, Serialize)] pub struct UpdateProfileRequest { /// Optional new username pub username: Option<String>, /// Optional new email pub email: Option<String>, } /// Request DTO for password change (Phase 8) #[derive(Debug, Deserialize, Serialize)] pub struct ChangePasswordRequest { /// Current password (for verification) pub old_password: String, /// New password pub new_password: String, /// Password confirmation pub confirm_password: String, } /// Response DTO for password change #[derive(Debug, Serialize)] pub struct ChangePasswordResponse { /// Success message pub message: String, } /// Active session information (Phase 9) #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ActiveSession { /// Session/refresh token ID pub id: uuid::Uuid, /// Device/browser information pub device_info: Option<String>, /// IP address pub ip_address: Option<String>, /// Last activity timestamp pub last_activity: chrono::DateTime<chrono::Utc>, /// Session creation timestamp pub created_at: chrono::DateTime<chrono::Utc>, /// Whether this is the current session pub is_current: bool, } /// List of active sessions (Phase 9) #[derive(Debug, Serialize)] pub struct ActiveSessionsResponse { /// List of active sessions pub sessions: Vec<ActiveSession>, } /// Request DTO for user preferences update (Phase 10 - US10) #[derive(Debug, Deserialize, Serialize)] pub struct UpdatePreferencesRequest { /// Theme preference: "light", "dark", or "auto" pub theme: Option<String>, /// Language preference: "fr" or "en" pub language: Option<String>, } /// Response DTO for user preferences (Phase 10 - US10) #[derive(Debug, Serialize)] pub struct UserPreferencesResponse { /// Current theme pub theme: String, /// Current language pub language: String, /// Success message if just updated pub message: Option<String>, }
GitRust