Compare commits

..
Author SHA1 Message Date
phoenix 653521c50e Added user module
Rust Build / Check (pull_request) Successful in 30s
Release Tagging / release (pull_request) Successful in 38s
Rust Build / Test Suite (pull_request) Successful in 28s
Rust Build / Rustfmt (pull_request) Failing after 32s
Rust Build / Clippy (pull_request) Successful in 32s
Rust Build / build (pull_request) Successful in 26s
2026-05-29 09:45:48 -04:00
+10 -61
View File
@@ -2,68 +2,17 @@ use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct User {
pub id: uuid::Uuid,
pub phone_number: String,
pub username: String,
pub password: String,
// Firstname is a pointer
pub firstname: String,
// Lastname is a pointer
pub lastname: String,
pub id: uuid::Uuid,
pub phone_number: String,
pub username: String,
pub password: String,
// Firstname is a pointer
pub firstname: String,
// Lastname is a pointer
pub lastname: String,
#[serde(with = "time::serde::rfc3339::option")]
pub created: Option<time::OffsetDateTime>,
pub created: Option<time::OffsetDateTime>,
#[serde(with = "time::serde::rfc3339::option")]
pub last_login: Option<time::OffsetDateTime>,
pub last_login: Option<time::OffsetDateTime>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct ServiceUser {
pub id: uuid::Uuid,
pub username: String,
pub passphrase: String,
#[serde(with = "time::serde::rfc3339::option")]
pub created: Option<time::OffsetDateTime>,
// When serializing to json, if empty do not populate
#[serde(with = "time::serde::rfc3339::option")]
pub last_login: Option<time::OffsetDateTime>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct UserLoginHistory {
pub id: uuid::Uuid,
#[serde(with = "time::serde::rfc3339::option")]
pub login_time: Option<time::OffsetDateTime>,
pub user_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct ServiceUserLoginHistory {
pub id: uuid::Uuid,
#[serde(with = "time::serde::rfc3339::option")]
pub login_time: Option<time::OffsetDateTime>,
pub service_user_id: uuid::Uuid,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct UserProfile {
pub user_id: uuid::Uuid,
pub phone_number: String,
pub username: String,
pub firstname: String,
pub lastname: String,
pub created: Option<time::OffsetDateTime>,
pub last_login: Option<time::OffsetDateTime>,
}
pub fn init_user_profile(usr: &User) -> UserProfile {
let mut usrProfile = UserProfile::default();
usrProfile.user_id = usr.id.clone();
usrProfile.phone_number = usr.phone_number.clone();
usrProfile.username = usr.username.clone();
usrProfile.firstname = usr.firstname.clone();
usrProfile.lastname = usr.lastname.clone();
usrProfile.created = usr.created.clone();
usrProfile.last_login = usr.last_login.clone();
return usrProfile;
}