//! Decisions frontmatter schema. use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use crate::Slug; use crate::schema::common::{Frontmatter, SourceRef}; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] pub enum DecisionStatus { Open, Resolved, Replaced, } #[derive(Debug, Clone, Deserialize, Serialize)] pub struct DecisionFrontmatter { pub created_at: DateTime, pub updated_at: DateTime, pub sources: Vec, pub status: DecisionStatus, #[serde(default)] pub replaced_by: Option, } impl Frontmatter for DecisionFrontmatter { const BODY_LIMIT: usize = 8000; fn created_at(&self) -> Option> { Some(self.created_at) } fn updated_at(&self) -> Option> { Some(self.updated_at) } }