devjournal 0.1.0

A dev first cli journaling tool
Documentation
use crate::domain::entry::Entry;
use crate::utils::date;
use chrono::NaiveDateTime;
use serde::{Deserialize, Serialize};
use uuid::Uuid;

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Page {
    pub id: Uuid,
    pub date: NaiveDateTime,
    pub entries: Vec<Entry>,
}

impl Page {
    /// Create new page model
    pub fn new(date: NaiveDateTime) -> Self {
        let id = date::generate_reproducible_id_from_datetime(date);

        Page {
            id,
            date,
            entries: Vec::new(),
        }
    }

    pub fn add_entry(&mut self, entry: Entry) {
        self.entries.push(entry);
    }
}