73 lines
2.1 KiB
Rust
73 lines
2.1 KiB
Rust
use chrono::{DateTime, Utc};
|
|
use derive_builder;
|
|
use serde::{Deserialize, Serialize};
|
|
use sqlx::{self, FromRow};
|
|
|
|
#[derive(Clone, Serialize, Deserialize, Debug, FromRow)]
|
|
pub struct RawPage {
|
|
pub id: i64,
|
|
pub slug: String,
|
|
pub title: String,
|
|
pub note_id: i64,
|
|
pub creation_date: DateTime<Utc>,
|
|
pub updated_date: DateTime<Utc>,
|
|
pub lastview_date: DateTime<Utc>,
|
|
pub deleted_date: Option<DateTime<Utc>>,
|
|
}
|
|
|
|
#[derive(Clone, Serialize, Deserialize, Debug, FromRow)]
|
|
pub struct RawNote {
|
|
pub id: i64,
|
|
pub uuid: String,
|
|
pub content: String,
|
|
pub notetype: String,
|
|
pub creation_date: DateTime<Utc>,
|
|
pub updated_date: DateTime<Utc>,
|
|
pub lastview_date: DateTime<Utc>,
|
|
pub deleted_date: Option<DateTime<Utc>>,
|
|
}
|
|
|
|
#[derive(Clone, Serialize, Deserialize, Debug, Builder)]
|
|
pub struct NewPage {
|
|
pub slug: String,
|
|
pub title: String,
|
|
pub note_id: i64,
|
|
#[builder(default = "chrono::Utc::now()")]
|
|
pub creation_date: DateTime<Utc>,
|
|
#[builder(default = "chrono::Utc::now()")]
|
|
pub updated_date: DateTime<Utc>,
|
|
#[builder(default = "chrono::Utc::now()")]
|
|
pub lastview_date: DateTime<Utc>,
|
|
pub deleted_date: Option<DateTime<Utc>>,
|
|
}
|
|
|
|
#[derive(Clone, Serialize, Deserialize, Debug, Builder)]
|
|
pub struct NewNote {
|
|
pub uuid: String,
|
|
pub content: String,
|
|
#[builder(default = "note")]
|
|
pub notetype: String,
|
|
#[builder(default = "chrono::Utc::now()")]
|
|
pub creation_date: DateTime<Utc>,
|
|
#[builder(default = "chrono::Utc::now()")]
|
|
pub updated_date: DateTime<Utc>,
|
|
#[builder(default = "chrono::Utc::now()")]
|
|
pub lastview_date: DateTime<Utc>,
|
|
pub deleted_date: Option<DateTime<Utc>>,
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn can_build_new_page() {
|
|
let now = chrono::Utc::now();
|
|
let newnote = NewNoteBuilder::default();
|
|
assert!((newnote.creation_date - now).num_minutes() < 1.0);
|
|
assert!((newnote.updated_date - now).num_minutes() < 1.0);
|
|
assert!((newnote.lastview_date - now).num_minutes() < 1.0);
|
|
assert!(newnote.deleted_date.is_none());
|
|
}
|
|
}
|