summaryrefslogtreecommitdiffstats
path: root/src/model.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/model.rs')
-rw-r--r--src/model.rs43
1 files changed, 16 insertions, 27 deletions
diff --git a/src/model.rs b/src/model.rs
index 655456e..045ab98 100644
--- a/src/model.rs
+++ b/src/model.rs
@@ -1,13 +1,9 @@
-use std::str::FromStr;
-
use serde::{Deserialize, Serialize};
use sqlx::FromRow;
use time::OffsetDateTime;
use uuid::Uuid;
-use crate::Error;
-
-#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize, FromRow)]
+#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, FromRow)]
#[serde(rename_all = "camelCase")]
pub struct UserSchema {
pub uuid: Uuid,
@@ -15,21 +11,23 @@ pub struct UserSchema {
pub email: String,
#[serde(default, skip_serializing)]
pub password_hash: String,
- pub created_at: Option<OffsetDateTime>,
- pub updated_at: Option<OffsetDateTime>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct RegisterSchema {
- pub name: String,
- pub email: String,
- pub password: String,
+ pub session_epoch: OffsetDateTime,
+ pub created_at: OffsetDateTime,
+ pub updated_at: OffsetDateTime,
}
-impl RegisterSchema {
- pub fn validate(&self) -> Result<(), Error> {
- email_address::EmailAddress::from_str(&self.email)?;
- Ok(())
+impl Default for UserSchema {
+ fn default() -> Self {
+ let now = time::OffsetDateTime::now_utc();
+ Self {
+ uuid: Default::default(),
+ name: Default::default(),
+ email: Default::default(),
+ password_hash: Default::default(),
+ session_epoch: now,
+ created_at: now,
+ updated_at: now,
+ }
}
}
@@ -38,12 +36,3 @@ pub struct LoginSchema {
pub email: String,
pub password: String,
}
-
-impl From<RegisterSchema> for LoginSchema {
- fn from(value: RegisterSchema) -> Self {
- let RegisterSchema {
- email, password, ..
- } = value;
- Self { email, password }
- }
-}