use std::default::Default; use crate::init; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Deserialize, Serialize)] pub struct User { #[serde(skip_serializing_if = "init::is_uuid_nil")] pub id: uuid::Uuid, #[serde(skip_serializing_if = "String::is_empty")] pub username: String, #[serde(skip_serializing_if = "String::is_empty")] pub password: String, #[serde(skip_serializing_if = "String::is_empty")] pub email: String, #[serde(skip_serializing_if = "String::is_empty")] pub phone: String, #[serde(skip_serializing_if = "String::is_empty")] pub firstname: String, #[serde(skip_serializing_if = "String::is_empty")] pub lastname: String, pub email_verified: bool, #[serde(skip_serializing_if = "String::is_empty")] pub date_created: String, #[serde(skip_serializing_if = "String::is_empty")] pub status: String, #[serde(skip_serializing_if = "String::is_empty")] pub last_login: String, } impl Default for User { fn default() -> Self { User { id: uuid::Uuid::new_v4(), username: String::new(), password: String::new(), email: String::new(), phone: String::new(), firstname: String::new(), lastname: String::new(), email_verified: false, date_created: String::new(), status: String::new(), last_login: String::new(), } } } impl User { pub fn to_json(&self, output_pretty: bool) -> Result { if output_pretty { serde_json::to_string_pretty(&self) } else { serde_json::to_string(&self) } } }